我有一个指向任意外域的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'。 –