[問題] 如何偵測iframe正在要求新網頁
這個問題也就是要如何讓iframe像IE中的onreadystatechange一樣,在
開始讀取的時候觸發event。我不希望使用者在另開視窗(可能是按滑鼠中鍵
或基於瀏覽器設定)的時候觸發,所以這個動作必須由iframe本身觸發,不
能用在連結上加onclick的方式處理。
目前我會做的是定時確認:
var i = 0;
var t = setInterval(function(){
if(目標iframe.contentWindow.document.readyState != 'complete'){
顯示本網頁正在讀取中的文字;
clearInterval(t);
}else if(i == 300){clearInterval(t)}
else{i++;}
}, 50);
這是一個在iframe讀取完成前顯示讀取中的功能(實際的樣子可以參考
我簽名檔的網站),當按下任何站內連結之後就會觸發上面的code,然後確
認目標iframe是否開始讀取。這在IE中表現如同預期,但Chrome和Firefox
中卻不會很快觸發;在仔細觀察後發現這兩個瀏覽器在server開始回應之前
似乎iframe的readystate都會一直處於complete狀態。結果只會看到這個讀
取中的文字一閃即逝;我還怕偶然網頁讀取太快會剛好遇到setInterval沒
抓到的情況所以把時間設得很短。請問還有沒有其他方法可以確認iframe正
在要求新網頁,來解決這個問題呢?
--
Il Cavaliere Inesistente
http://dejavu.blogdns.org/
騎士是種一旦失去存在的意義,就會崩解消失的東西
因此他們的一生總在追求著某些事物,以維持自己的存在
如果有了存在的理由,即使是一副空的鎧甲,也可以成為騎士
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.253.87.143
推
08/08 17:32, , 1F
08/08 17:32, 1F
→
08/08 17:39, , 2F
08/08 17:39, 2F
→
08/08 18:12, , 3F
08/08 18:12, 3F
→
08/08 20:16, , 4F
08/08 20:16, 4F
→
08/08 20:19, , 5F
08/08 20:19, 5F
→
08/08 20:25, , 6F
08/08 20:25, 6F
→
08/08 20:26, , 7F
08/08 20:26, 7F
→
08/08 20:28, , 8F
08/08 20:28, 8F
→
08/08 20:30, , 9F
08/08 20:30, 9F
→
08/09 01:01, , 10F
08/09 01:01, 10F
→
08/09 12:57, , 11F
08/09 12:57, 11F
→
08/09 12:59, , 12F
08/09 12:59, 12F
→
08/09 18:37, , 13F
08/09 18:37, 13F
推
08/10 01:25, , 14F
08/10 01:25, 14F
→
08/10 08:56, , 15F
08/10 08:56, 15F
→
08/10 08:57, , 16F
08/10 08:57, 16F
→
08/10 09:00, , 17F
08/10 09:00, 17F
→
08/10 09:00, , 18F
08/10 09:00, 18F
→
08/10 09:10, , 19F
08/10 09:10, 19F
→
08/10 09:10, , 20F
08/10 09:10, 20F