当前位置: 代码迷 >> Web前端 >> What's wrong with this and the difference
  详细解决方案

What's wrong with this and the difference

热度:517   发布时间:2012-10-24 14:15:58.0
What's wrong with this and the difference?
目的:动态加载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 不是标准属性,各个浏览器实现都有差异。
2 楼 黎明破晓前 2008-02-22  
innerHTML对于head标签来说是只读的
我这里你的第一种根本插入不了script,你的可以?
3 楼 Duno 2008-02-22  
记录下:http://hi.baidu.com/jia818915/blog/item/75c2c61f4c50c161f624e485.html
  相关解决方案