方法列表
eval()
jQuery 和 Babel 就是采用这种做法。
eval() - JavaScript | MDN
eval('alert(\'haha\')')
document.write
document.write('<script>alert(\'haha\')</script>')
script.text
和 textContent 属性类似,本属性用于设置元素的文本内容。但和 textContent 不一样的是,本属性在节点插入到DOM之后,此属性被解析为可执行代码。
var script = document.createElement('script');
script.text = 'alert(\'haha\')';
document.body.appendChild(script)
new Function
var fn = new Function('alert(\'haha\')')
fn();
PS
写完之后发现了国外有篇总结,也很不错。Run script tags in innerHTML content — Ionuț Colceriu。比我总结的多了一个 createContextualFragment
方法,但是少了 new Function
。