论坛首页 Web前端技术论坛

What's wrong with this and the difference?

浏览 2329 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-22  
目的:动态加载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,想请教缘由?

   发表时间:2008-02-22  
“对于IE,首先 script 标签必须带 defer 属性,其次在插入时刻,innerHTML 的所属节点必须在 DOM 树中;对于 Firefox 和 Opera,在插入时刻,innerHTML 的所属节点不可以在 DOM 树中。”

innerHTML 不是标准属性,各个浏览器实现都有差异。
0 请登录后投票
   发表时间:2008-02-22  
innerHTML对于head标签来说是只读的
我这里你的第一种根本插入不了script,你的可以?
0 请登录后投票
   发表时间:2008-02-22  
记录下:http://hi.baidu.com/jia818915/blog/item/75c2c61f4c50c161f624e485.html
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics