2014-10-16 72 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