2014-10-16 3 views
-1

Edit: Это всплывающее окно в расширении Google ..Javascript Eval/Выполнить код из поля ввода

Я хочу, чтобы выполнить код из поля ввода ..

function jsinjector() { 
    var jsinjectinvar = document.getElementById("jsinjectin").value; 
    eval(jsinjectionvar);  
} 

Поле ввода и кнопка:

<input type="text" id="jsinjectin" name="jsinjectin" class="javascriptinject" /> 

<input type="button" class="javascriptinject" name="jsinjectsub" id="jsinjectsub" value="Inject" onmouseup="jsinjector();" /> 

Eval не работает, поэтому что не так?

-Спасибо, начинающий Сэм

+0

Вы устанавливаете 'jsinjectinvar', но оцениваете' jsinjectionvar'. Отсутствует «о» в первом. –

+0

Консоль Javascript сообщила бы вам, что 'jsinjectionvar' не определен: [Как открыть консоль JavaScript в разных браузерах?] (Http://webmasters.stackexchange.com/questions/8525/how-to-open-the- javascript-console-in-different-browsers) –

+0

По-прежнему не работает .. – Sam

ответ

0

расширений Chrome имеет систему песочницы по соображениям безопасности (Eval является большими открыли ворота для хакеров, если не используются должным образом), см Using eval in Chrome Extensions. Safely.

+0

Я не лучше на английском. Так в принципе, как я могу это сделать? – Sam

0

Вы можете включить использование eval в вашем расширении на setting the content security policy, чтобы разрешить это.

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'" 

Однако, пожалуйста, прочитайте страницу, указанную выше, чтобы понять, почему она не очень хорошая (хотя иногда и действительная) идея.

+0

Ye, но я делаю расширение «hacking tool»: D – Sam

+0

Вы столкнетесь с некоторыми проблемами. Прочтите [Обзор архитектуры] (https://developer.chrome.com/extensions/overview#arch). – Xan

+0

И все еще не работает. – Sam

Смежные вопросы