2014-10-16 56 views
-1

编辑:这是在谷歌扩展弹出..的Javascript评估和演示/从输入框中执行代码

我要执行从输入框代码..

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没有工作,那又怎么了?

-Thanks,初学者山姆

+0

您正在设置'jsinjectinvar',但评估'jsinjectionvar'。第一个缺少“o”。 – 2014-10-16 15:47:57

+0

Javascript控制台会告诉你'jsinjectionvar'是未定义的:[如何在不同浏览器中打开JavaScript控制台?](http://webmasters.stackexchange.com/questions/8525/how-to-open-the- javascript-console-in-different-browsers) – 2014-10-16 15:48:45

+0

仍然不起作用.. – Sam 2014-10-16 15:59:24

回答

0

Chrome扩展出于安全考虑(EVAL是黑客大开闸门,如果不正确使用)沙盒系统,看Using eval in Chrome Extensions. Safely.

+0

我不是英文最好的。所以基本上,我该怎么做呢? – Sam 2014-10-16 17:05:13

0

您可以启用使用eval在您的扩展中由setting the content security policy允许。

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

但是,请完整阅读上面链接的页面,了解为什么它不是一个很好的(虽然有时是有效的)想法。

+0

咋,但我在做“黑客工具”的扩展:D – Sam 2014-10-16 18:30:48

+0

你会遇到一些颠簸..阅读[Acrhitecture Overview](https://developer.chrome.com/extensions/overview#arch)。 – Xan 2014-10-16 18:32:20

+0

仍然不起作用.. – Sam 2014-10-16 18:32:38