2014-09-02 95 views
0

我做了這個函數從數組中加載內聯javascript,html和外部javascript,它似乎可以在所有瀏覽器中工作,但偶爾會在ie9和ie10中加載內部的js和html但不是外部文件。由javascript加載的外部JavaScript有時不工作在IE中

http://jsfiddle.net/fjfzmf2d/10/

// 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]; 
      } 
      _content.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){ 
       inline += arguments[1] + '\n'; 
      }); 
      script.text = inline; 
      selector.appendChild(script); 
     } else { 
      // html content. 
      selector.innerHTML += _content; 
     } 
    } 
} 
// Selector - div or tag. 
var selector = document.body; 

// Array with inline and external javascript. 
var arr = []; 
// Inline javascript. 
arr.push('<script>alert("inline javascript");</\script>'); 
arr.push('<script>alert("more inline javascript");</\script>'); 
// External script. 
arr.push('<script type="text/javascript" src="http://chrismills.la/test.js"></\script>'); 
// html. 
arr.push('<p>Content.</p>'); 
arr.push('<p>More Content.</p><p>More Content 2.</p>'); 

_append(selector, arr); 
+0

你想用所有的正則表達式來完成什麼? – Ryan 2014-09-02 23:13:35

+0

一個從數組中的外部腳本字符串獲取url,一個從嵌入式javascript的