2012-09-01 106 views
0

給定字符串s,如何在JavaScript中「執行」它?評估字符串的方法

我知道兩種方式,分別是eval(s)(new Function(s))()

有沒有其他方法可以評估字符串?

+3

是這些方式不夠? – robert

+3

您可以使用Javascript編寫Javascript解釋器。 –

+0

http://stackoverflow.com/questions/12227546/how-can-i-detect-im-inside-an-eval-call –

回答

2

在HTML文檔中,您可以創建<script>元素,但我不認爲<script>.innerHTML可以在所有瀏覽器中使用(但在Firefox中可以使用)。

var strToEval = "window.alert(1);"; 
window.onload = function() { 
     var scrEl = document.createElement('script'); 
     scrEl.innerHTML = strToEval; 
     document.body.appendChild(scrEl); 
}; 

或者,而不是設置innerHTML

scrEl.src = "data:text/javascript," + strToEval;