将文档替换为iframe的文档

时间:2017-04-12 18:56:11

标签: javascript dom iframe cross-domain

我有一个显示包含随机网站的iframe的网页。 10秒后,我希望iframe中的网站替换“父”网站。

假设我的网站www.aaa.com有一个包含网站www.bbb.com的iframe。 10秒钟后,我希望浏览器用www.bbb.com替换当前打开的www.aaa.com,而无需重新加载页面,这样用户就不会失去状态。基本上替换文档并相应地更新URL栏。

我不能只获取iframe的网址并更改位置,因为用户可能正在观看视频,并且由于网页重新加载,它会从头开始。

我一直在寻找这个问题几个小时,我找不到任何东西。

1 个答案:

答案 0 :(得分:2)

您可以设置window.location = "//www.bbb.com",但它会像往常一样获取该网页。

您可以使用window.history.replaceState(null, "test", "www.aaa.com/mypage?foo=bar")在浏览器中设置网址,但它会在跨网域中失败(它甚至会在您网站上使用子网域失败)。

您无法获取跨域iframe的内容。

这些都与跨源安全性有关。可能存在例外情况,例如您具有提升的权限(浏览器插件)。某些功能可能可以使用CORS而不是,但您需要来自其他域的所有者的合作。

简而言之,最接近您想要的可能是将iframe设置为窗口的整个宽度/高度。