我們有一些JavaScript將腳本寫入到我們網頁中的動態資源中,以便允許我們在不同服務器提供的頁面之間傳遞一些信息跨站點腳本限制。IE間歇性地不執行動態添加的腳本文件
這個想法是,瀏覽器請求由服務器端的動態資源提供的JavaScript文件(這也將一些服務器端信息放入請求中)。當瀏覽器被添加到頁面時,JavaScript文件會被瀏覽器執行。
我們遇到了Internet Explorer的一個問題,即在響應中返回的JavaScript被添加到頁面時,間歇性地不執行它。問題發生時檢查Fiddler HTTP跟蹤顯示腳本已成功返回到瀏覽器。
更可靠地測試這個,我改變,增加了腳本運行1000次的循環如下面的代碼:
for (var i = 1; i <= 1000; i++) {
try {
var script = document.createElement("SCRIPT");
script.src = serverHome + "/ajavascriptfile.js?token=" + token + "&num=" + i;
script.id = token;
document.getElementsByTagName("HEAD")[0].appendChild(script);
} catch (e) {
alert(e);
}
}
通過ajavascriptfile.js
返回的腳本只是增加我的網頁上的計數器:
var output = document.getElementById("output");
output.innerHTML = parseInt(output.innerHTML) + 1;
本次測試中沒有發現任何異常。
如果正確執行,計數器應該達到1000(它在Firefox中執行)。然而在IE6中,它平均爲900-950,IE7約爲995-998,而IE8則是令人震驚的750-800。
是否有其他人遇到Internet Explorer不執行動態包含的腳本?如果是這樣,你知道如何解決這個問題嗎?
你有沒有在頁面中聲明的' ? –
2010-02-11 04:05:07
不,我沒有頁面上的 。 –
2010-02-11 20:06:19
我正在解決這個問題,但我不確定whyat是錯的! – JustEngland 2014-01-28 23:02:04