2011-05-13 68 views
0

外部JS我要加載外部JavaScript文件,但我不能使用,因爲同源策略 AJAX請求,和我有一個代碼:加載在IE

<script type="text/javascript"> 
    var head = document.getElementsByTagName('head')[0]; 
    var script = document.createElement('script'); 
     script.type = 'text/javascript'; 
     script.src = 'test.js'; 
    head.appendChild(script); 
</script> 

這是確定的無處不在(火狐,Chrome,Opera,IE9,IE6),但不在IE8,IE7中。
我如何使它在IE8中工作?

+0

這取決於你在哪裏插入了這段代碼在這裏看到第二點http://www.kodeplay.com/2011/04/best-practices-for-ie/ – jimy 2011-05-13 07:32:59

回答

1

document.write('<script language="javascript" src="test.js"><\/script>')怎麼樣?你也可以不用追加到head就可以用body來。

+0

它不能在ie8和ie7中工作 – tsds 2011-05-13 07:41:12

+0

ps - ><\/script>避免「未終止的字符串文字」錯誤 – tsds 2011-05-13 07:44:14

+0

@tsds:Ahh thx。編輯我的帖子。 – DanielB 2011-05-13 07:50:34

1

我不知道爲什麼你不得不在IE瀏覽器的問題,但在Firefox 4,IE6和IE9以下工作(即瀏覽器我有提供):

<html> 
<head> 

</head> 
<body> 
    <script type="text/javascript"> 
     var head = document.getElementsByTagName('head')[0]; 
     var script = document.createElement('script'); 
      script.type = 'text/javascript'; 
      script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js'; 
     head.appendChild(script); 

     var interval = window.setInterval(function() { 
      if (typeof($) !== "undefined") { 
       $("<p>it worked!</p>").appendTo(document.body); 
       window.clearInterval(interval); 
      } 
     }, 100); 
    </script> 

</body> 
</html> 
+0

事實上,你的解決方案和我的問題一樣,並且在IE7和IE8 – tsds 2011-05-13 07:47:52

+0

呃不起作用,不,不是。它會等到js被加載並使用它。在我的測試中,它在ie6 +中工作。 – tmont 2011-05-13 08:08:13

+0

是的,你是對的。事情是,我使用'IE測試器',它似乎實現IE7和IE8不正確,所以它也可以與您的答案,但我不能做多個提交。所以至少我做了一個贊成。 – tsds 2011-05-13 09:09:03