2017-01-23 21 views
0

回國時在Firefox假我有一個函數:使用Javascript - Image.complete是真實的,但運行實時

function IsImageLoadable(URL) { 
    var imageObj = new Image(); 
    imageObj.src = URL; 

    var x = (imageObj.complete); 
    var y = (imageObj.naturalHeight); 

    if ((x === true) && (y !== 0)) 
    return true; 
    else 
    return false; 
} 

的問題是,在Chrome,IE,邊緣和Opera,這functionalty正常工作。如果圖像可加載,則xy變量被設置爲true,並且相應地一些數字大於0。然而,在Firefox運行實時xy設置爲false0

我說實時的原因是因爲在調試和逐行掃描時,x等於truey等於500ish。

在Firefox中使用圖像對象時,這是一個問題?有什麼建議麼?

+0

當你處理程序onload事件? – Smiranin

回答

1

負載映像集處理器

function IsImageLoadable(URL) { 
    var imageObj = new Image(); 
    imageObj.src = URL; 

imageObj.onload = function(){ 
    //your code 
} 
} 
+0

我同意事件處理程序是另一種方式來做到這一點(可能是大多數人喜歡的方式,但我試圖避免它)。你知道爲什麼Firefox會提供這種行爲嗎? –

+0

@FrankPalmasani我不知道它可能是規格引擎Gecko和他的圖片工作。也許他沒有時間處理數據以立即給你結果。 – Smiranin

+0

有趣。我避免使用回調的原因是因爲我使用IsImageLoadable的結果來做出決定並且事件是異步的。 –

相關問題