2012-01-20 74 views
0

我想用JS做堵塞。 我有以下代碼:Javascript跨域不一致

var fileref = document.createElement('script'); 
fileref.src = "js/index.js"; 
document.documentElement.appendChild(fileref); 

我可以驗證跨域代碼加載但它並不總是執行。即使我之前設置它</head>

有時它會,但有時它不會。關於我可能做錯什麼的想法?

回答

2

JavaScript有時在存在document.documentElement之前運行。所以當它追加新的script元素時,它會失敗。不一致性(「有時候會,但有時候不會)」是由於頁面渲染速度稍微不同。

更新:

把這個在您的<head>

<script type="text/javascript"> 
    (function() { 
     var scrpt = document.createElement('script'); 
     scrpt.type = 'text/javascript'; 
     scrpt.async = true; 
     scrpt.src = 'js/index.js'; 
     var s = document.getElementsByTagName('script')[0]; 
     s.parentNode.insertBefore(scrpt, s); 
    })(); 
</script> 
+0

任何關於如何克服的建議?我試圖添加window.onload =功能(){}但沒有幫助 – salmane

+0

謝謝@Justin我以前試過,但它甚至沒有在我的頁面注入腳本標記..我一定是做錯了 – salmane

+0

@salmane :我知道代碼的作品。如果您只是在頭腦中放置一個'',它是否工作?你確定腳本有觸發的事件嗎? –