下面这段代码插入了一段script代码,然后立即将其移出,那是什么机制保证了移出节点(removeChild函数)前,里面的代码已经执行完毕了呢?
var a = 1,
code = 'a = 2;',
doc = document,
body = doc.body,
script = doc.createElement('script');
script.innerHTML = code;
body.appendChild(script).parentNode.removeChild(script);
console.log(a);
首先,没有遇见过这种插入之后马上删除的情况,所以我大概说一下我的看法,需要对你有所帮助:
1、这个
script
是浏览器异步加载的,一般情况下不知道何时加载完,像这种里面就一个a=2;
,它的执行力是很快的,解析非常快。不知你是否试过放成百上千条代码进去,还能把所有代码执行完成的情况?2、从另一个角度来想,我项目有个需求就是要动态创建
script
标签插入到body
中去,如果插入了里面代码不先立即执行一遍,那么不就和没有使用动态插入是一样的。关于动态插入
script
文件的的一些方法链接(来自网络):http://www.cnblogs.com/skykan...