我想将 javascript 动态添加到现有的脚本元素中,例如:
var se = document.createElement('script');
se.setAttribute('type', 'text/javascript');
se.innerHTML = 'alert(1)';
document.getElementsByTagName('head').item(0).appendChild(se);
有趣的部分是 se.innerHTML = 'alert(1)';
它是否有效?如果不是,我怎么能以正确的方式做到这一点?
最佳答案
所有浏览器目前都支持 javascript text 属性,并且会在将新脚本元素(没有 src 属性)添加到文档时评估文本。
innerHTML 或向脚本元素添加子节点不会在所有浏览器中评估脚本。
function addCode(code){
var JS= document.createElement('script');
JS.text= code;
document.body.appendChild(JS);
}
//测试用例
var s= 'document.body.ondblclick=function(e){\n'+
'e=window.event? event.srcElement:e.target;\n'+
'alert(e.id || e.tagName);\n'+
'}\nalert("ready to double click!");';
addCode(s);
关于javascript - 我可以将 javascript 动态添加到现有脚本元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3619484/