2014-09-03 114 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。

相關問題