2014-09-03 82 views
0

我需要能够传入标记或ID以追加内容和js文件。像往常一样,这可以在每个浏览器中工作,除了ie,即只适用于document.getElementsByTagName('head')[0] .appendChild。有没有解决这个问题?appendChild在Internet Explorer中不工作

http://jsfiddle.net/qg5zexmh/

// Append js and html. 
function _append(selector, arr) { 
    var content = arr; 
    for(var i = 0; i< content.length; i++) { 
     var _content = content[i]; 
     var js = _content.indexOf('script'); 
     if(js > -1) { 
      // Script tag. 
      var script = document.createElement('script'); 
      script.type = 'text/javascript'; 
      var regex = /<script.*?src="(.*?)"/gmi; 
      var url = regex.exec(_content); 
      var inline = ''; 
      if(url) { 
       script.src = url[1]; 
      } else { 
       _content.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){ 
       inline += arguments[1] + '\n'; 
       }); 
       script.text = inline; 
      } 
      //document.getElementsByTagName("head")[0].appendChild(script); 
      selector.appendChild(script); 
     } else { 
      // html content. 
      selector.innerHTML += _content; 
     } 
    } 
} 
// Selector - div or tag. 
var selector = document.getElementById('content'); 
+0

入住这可能会帮助你[追加与孩子即] [1] [1]:HTTP://计算器。 COM /问题/ 7090198 /使用-的appendChild与 - 即,在JavaScript的 – 2014-09-03 01:24:36

回答

0

appendChild使用已创建的元素或DOMparser(尽管DOMparser本身不会与safari/webkit一起工作),还将脚本附加到选择器不是跨浏览器友好的,它需要附加到head或body标签直。

使用的appendChild与HTML最简单的方法是

var str = '<h1>string of html</h1>'; 
var d = document.createElement('div'); 
d.innerHTML = str; 
selector.appendChild(d); 
-1

的appendChild可与内嵌的JavaScript,但你必须使用文件撰写( '</SCRIPT>');让外部脚本在ie中运行。回到ie8。

相关问题