目的:动态加载javascript
两种方式:
1.
function include(src) { HTMLCode = '<script language="javascript" src="' + src + '"></script>'; var tags = document.getElementsByTagName("head"); var html = tags[0].innerHTML; tags[0].innerHTML = HTMLCode + html; }
2.
function include(src) { var s = document.createElement('script'); s.src = src; var tags = document.getElementsByTagName("head"); tags[0].appendChild(s); }
假设动态加载的src中含有全局变量 var all=123;
测试的时候第一种方式是拿不到这个全局变量的,而第二种是可以的,但两种方式下inspect可以看到文档中均已经加载src,想请教缘由?
1 楼
boin
2008-02-22
“对于IE,首先 script 标签必须带 defer 属性,其次在插入时刻,innerHTML 的所属节点必须在 DOM 树中;对于 Firefox 和 Opera,在插入时刻,innerHTML 的所属节点不可以在 DOM 树中。”
innerHTML 不是标准属性,各个浏览器实现都有差异。
innerHTML 不是标准属性,各个浏览器实现都有差异。
2 楼
黎明破晓前
2008-02-22
innerHTML对于head标签来说是只读的
我这里你的第一种根本插入不了script,你的可以?
我这里你的第一种根本插入不了script,你的可以?
3 楼
Duno
2008-02-22
记录下:http://hi.baidu.com/jia818915/blog/item/75c2c61f4c50c161f624e485.html