2014-04-19 101 views
0

我只是想問,這可能從用戶輸入執行JavaScript代碼?例如:用戶在<textarea id="test">中輸入他的Javascript代碼。然後用JavaScript,我得到了他的輸入var userInput = $('#test').val();。是否有可能從該字符串執行JavaScript代碼?如果可能的話,請告訴我如何。javascript - 在代碼中執行代碼?

〜問候

+3

您可以使用'eval'來執行字符串作爲代碼。 – keune

+1

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval –

+0

更具體地說:https://developer.mozilla.org/en-US/docs/Web/JavaScript/ Reference/Global_Objects/eval#Don.27t_use_eval.21 ...「eval()是一個危險的函數」! – cepharum

回答

0

有兩種方式與eval()函數來做到這一點:

eval(userInput); 

或通過創建一個函數,然後調用它。

var fun = new Function(userInput); 
fun.apply(window); 
+0

你在哪裏可以找到一個javascript函數對象的'invoke()'方法?在JS中,你可以用'()'來調用一個函數,如'fun()'。 – jfriend00

+0

對不起,它適用(或致電) –

+0

如果你想控制'this'指針,並且你只需要使用'.apply()',你只需要使用'.call()',如果你想傳遞一個數組而不是僅僅列出它們。否則,你可以使用'fun()'。 – jfriend00