给定一个字符串s
,如何在JavaScript中“执行”它?
我知道两种方式,即eval(s)
和(new Function(s))()
。
还有其他方法可以评估字符串吗?
答案 0 :(得分: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;