我試圖在iPhone/iPad上顯示SVG。此代碼在ASP.Net頁面中運行。我正在使用Raphael來顯示Raphael處理的圖形和其他所有爵士樂。不過,我擁有的代碼實際上並未在iOS上執行。HTML/jQuery onload/load沒有在iOS上執行
img = new Image();
//img.onload = function() { drawLayersWhenAllAreLoaded(); };
if (img.addEventListener) {
img.addEventListener('load', drawLayersWhenAllAreLoaded, false);
}
else {
img.attachEvent("onload", function() { return (drawLayersWhenAllAreLoaded.call(img, window.event)); });
}
img.src = files[i];
我已經在Windows的Chrome,Firefox和Safari上測試了它,它工作的很好。我已經在Mac OS X上的Chrome,Firefox和Safari中測試過它,並且效果很好。但是,在iOS上運行時(iOS 6或iOS 7無關緊要,iPhone或iPad無關緊要),drawLayersWhenAllAreLoaded
函數不會被執行。如果沒有執行,圖像不會顯示在屏幕上。
這是我測試的最終代碼。我已經測試沒有檢查iOS。我測試過使用img.onload
。我試過只用img.addEventListener
。如果嘗試從最簡單到最複雜的代碼的每個版本,我都無法完成它。如果我在drawLayersWhenAllAreLoaded
中發出警報,它將在所有瀏覽器上顯示,但不顯示在iOS上。
根據我的理解,在HTML/jQuery中設置圖像的src
將加載圖像。我們的圖片可能相當大,所以在調用drawLayersWhenAllAreLoaded
(這段代碼在一個加載一堆圖片的循環中)之前,我需要等待它們全部加載。
我搜索了Google搜尋了幾個小時尋找類似的東西,但無法找到任何東西。想知道是否有人再次遇到這種情況,或看看我做錯了什麼?
謝謝。
EDITED:
更多的測試後,我已經決定了我drawLayersWhenAllAreLoaded
沒有被打到,但只有一次。我目前正在嘗試加載32張圖片。加載圖像的代碼在iOS上運行32次(每次添加警報時都會顯示),但drawLayersWhenAllAreLoaded
僅調用一次。