2010-11-25 80 views
1

以下代碼片段工作在IE6 & IE7以及幾乎所有版本的FF中。它只是在IE8中不起作用。一旦我將腳本標記添加到HTML-> HEAD元素中,我沒有看到腳本正在瀏覽器中加載(腳本中的警報沒有顯示出來),但它不起作用。我看到標籤已經插入到HTML-HEAD中。運行時包含JavaScript在IE8中不起作用

var head = document getElementsByTagName('head')[0]; 
// Check if the script is already loaded. 
if (head){ 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.language = 'JavaScript'; 
    script.src = '/Tolven/scripts/' + jsFileName; 
    head.appendChild(script);  
} 

有沒有人有這個問題?或者任何線索來解決這個問題?

+0

您使用的是哪個框架和版本? (`$$`不是本地JS方法)。 – Piskvor 2010-11-25 16:26:35

+0

它的prototype.js,我現在改變了使用JS方法的問題。 – 2010-11-25 16:49:36

+0

你在ie8中收到了一些錯誤信息嗎? – 2010-11-26 03:46:53

回答

1

如果此腳本位於<head>標記中,則在解析並執行此腳本時,該標記不會存在。所以,來源if (head)false

您正在使用JS框架 - 所以請隨時使用它的工具。在使用它之前,不要忘記包含你的框架。

<!-- if your are using mootools --> 
<script type="text/javascript" src="mootools.js"></script> 
<script type="text/javascript"> 
    window.addEvent('domready', function() { 
    // Your code... 
    }); 
</script> 

<!-- if your are using prototype --> 
<script type="text/javascript" src="prototype.js"></script> 
<script type="text/javascript"> 
    document.observe("dom:loaded", function() { 
    // Your code... 
    }); 
</script> 
0
var head = document getElementsByTagName('head')[0]; 

應該

var head = document.getElementsByTagName('head')[0]; 

腳本似乎這個修改後的工作。

1

考慮使用像RequireJSLABjs這樣的庫,它可以在運行時很好地執行腳本。

-1

這實際上是工作。在運行時插入的其中一個腳本中存在錯誤(僅發生在IE8中)。最終它不會在接下來加載的頁面中執行警報。儘管感謝您的答案。