我在Internet Explorer中遇到了一些JavaScript問題。在Internet Explorer中更改src值時發生無盡的循環
它在其他瀏覽器中正常工作。
我有以下方法,它改變了圖像的src屬性,當發生這種情況時,應該開始下載該圖像。如下所示:
for (var i = 0; i < imagesStartedDownloading.length; i++) {
if (imagesStartedDownloading[i] == false && responseItems[i] == true) {
console.log("image", i);
var url = baseurl + "/ImageDownload/?imageName=" + hash + "_" + imageDegrees[i] + ".jpg" + "&r=" + Math.random();
imagesStartedDownloading[i] = true;
images.eq(i).attr("src", url);
}
}
問題是,在更改此屬性時,Internet Explorer啓動了無限循環的下載圖像。注意我已經在for循環中放了一個console.log。我可以確認這個for-loop不在endles循環中運行。每個應該下載的圖像只運行一次。所以這不是問題。
該頁面上實際可以看到該行爲:http://www.energy-frames.dk/Konfigurator。按F12並檢查網絡選項卡。對主頁上的圖像進行更改,以便開始下載新圖像。 Bredde(英文寬度),見下文:
當這個變化被做成新的圖像下載無限循環(它幾乎每次都發生在IE中)。看下面你可以改變什麼
我真的花了很多時間在這個調試,我不明白爲什麼它在IE中這樣的行爲,但不是在所有其他瀏覽器。
因此,有沒有人有任何想法,爲什麼會發生這種情況?或者有什麼我可以嘗試的建議? 編輯:
@gxoptg 我試過你的建議。使用 「的javascript:無效0」 是這樣的:
var newimg = $("<img class='rotator" + (isMainImage ? " active" : "") + "' src='javascript:void 0' />");
這:
img.attr("src", "javascript:void 0");
給了我這個錯誤:
在另一方面,如果我完全刪除該行img.attr(「src」,「」); 在imgLoadError方法,然後我看到圖像不下載無限循環。另一方面,他們沒有顯示。那麼我使用javascript:void 0錯誤?
當我做到以下幾點:
img.attr("src", "void(0)");
那麼沒有死循環,但圖像不會出現在IE瀏覽器 - 仍然能正常鉻。
你也可以分享圖像變量被鑄造,使用等的代碼請讓我可以有一個更好的主意,如果不分享文件的名稱,因爲你有很多在你的腳本文件夾。謝謝。 – serdarsenay
你有沒有試過這個http://stackoverflow.com/questions/5775469/whats-the-valid-way-to-include-an-image-with-no-src? –
您是否嘗試過'img.setAttribute(「...」,「...」)或'img.src =「...」' – CoderPi