我有一个指向任意外部域的 iframe http://A
。我想http://B
在用户事件中将其发送到另一个外国域。
说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';
但是,这会引发跨域错误,说我无法访问 of 中的contentWindow
内容http://A
(因为loading.html
尚未加载,我们仍在运行http://A
,我无法强制重新加载)。
有没有办法强制 iframe 同步加载 URL?我正在编写一个 Chrome 扩展程序,所以如果它必须具体crx
到那也没关系。