我有一個指向任意外域的iframe http://A
。我想將其發送到用戶事件的另一個外地域http://B
。強制同步iframe加載
說http://B
加載速度很慢。如果我只設置iframe.src = "http://B"
,那麼iframe將保留A
的內容,直到B
被完全下載並且可以呈現。這讓用戶感到困惑,因爲他們要求B
,但他們看到的全部是A
。
我想從我的域中加載一個頁面,例如../html/loading.html
,在A
和B
之間。假設這個頁面加載總是很快。我發現iframe.src
是異步的。請看下面的代碼:
iframe.src = '../html/loading.html';
iframe.src = 'http://B';
此跳過打開../html/loading.html
,右去http://B
。 (不管loading.html
可能有多快,或者B
可能有多慢)。我也試着這樣做:
iframe.src = '../html/loading.html';
iframe.contentWindow.location.reload();
iframe.src = 'http://B';
然而,這將引發跨域錯誤,說我不能在http://A
的contentWindow
訪問的東西(因爲loading.html
沒有加載,我們仍然在http://A
和我不能強制重新加載)。
有沒有辦法強制iframe做同步加載的URL?我正在編寫Chrome擴展程序,因此如果它必須特定於crx
,那也沒關係。
您可以通過創建2'iframe's做到這一點。一個用於'加載',一個用於'// B'。加載完成後顯示'// B',然後隱藏'loading'。 –