2012-09-20 28 views
0

我卻改變集window.location的等待後

window.location.href = url; 

一個回調函數,這個回調是檢查不同的頁面(和不同的域)是否存在圖像後調用。 我的問題是,IE9不會讓我做到以下幾點:

 $(testImage) 
      .bind("load readystatechange", function (e) { 
       if (this.complete || (this.readyState === 'complete' && e.type === 'readystatechange')) { 
        callbackFunction(true); 
       } 
      }) 
      .bind("error abort", function() { 
       abort(); 
      }) 
      .attr("src", testUrl); 

IE9將然而讓我做這件事:

callbackFunction(true); 

但我想等等看,我的形象存在,我需要上面的工作。 (我不想更改IE設置)當然,在Chrome中這一切都可以正常工作。

任何人有任何想法?

編輯:我想我應該澄清:「當我說ie9不會讓我這樣做..」我的意思是ie9執行回調,但內部代碼(更改url)不起作用。

回答

0

IE還支持圖像load事件,你不明確檢查.readyState財產,除非您有其他原因,你沒有提到。

所以應該絕對足夠去像

$(testImage).on('load', function(e) { 
    callbackFunction(true); 
}); 
+0

仍然無法工作,認爲這是因爲IE不會允許在一個異步調用更改URL。 – Mystogan

+0

@drbaltar:我無法想象。這是否適合你http://jsfiddle.net/bQ7kG/? – jAndy

+0

是的工作,我的網頁是https btw。注意測試頁面上的chrome和ie9之間的區別:當頁面加載時chrome show alert權限,即需要點擊按鈕... – Mystogan