我可以从内部更改 iFrame 的源吗?



这是一个我难以清晰表述的问题;仔细阅读。我想知道iFrame的源(通过iFrame显示的页面)是否可以在不更改iFrame父页面源的情况下更改其内部源。

例如:

如果我在网页中创建iFrame,并单击iFrame中的传统链接,则主页面(我创建If的页面)的源(位置)将发生更改,而不是iFrame的内容。


相反,我希望通过框架内容将iFrame的源(此可以跨域内容)更改为框架本身内的新位置

我注意到JS中更改页面的方法有不同的行为地方这个SO问题有一些细节。一些方法我注意到,更改页面的行为有所不同,比如不允许用户使用后退按钮进入该用户导航自。

使用这些不同的JS位置更改方法之一,我认为这是可能的,但我不确定如何做到。

问题:

如果iFrame请求的网页与其合作,是否有可能实现iFrame资源更改其自身位置的结果?如果是,是如何做到的?

对于iframe中的任何锚点标记,请尝试将目标设置为_self。像这样:

<a href="/mynewlinkwithiniframe.html" target="_self">Test</a>

我会玩的,但我知道这是老式相框的标准。

编辑根据我所做的一些测试,iframe内锚链接的默认操作是在iframe中加载新内容。target="_self"是多余的,除非有其他东西覆盖它。如果这不能为你解决问题,也许你应该提供更多关于源代码的信息。

我还可以假设您正在使用javascript遇到问题。如果您使用的是window.location.href,则需要更改如下:

代替:

window.location.href = 'newpage.html';

尝试:

window.open('/newpage.html', '_self');

这样做:

window['iframe_name'].src = 'http://yourdomain.com';

或者这样做:

document.getElementById('iframe_id').src = 'http://yourdomain.com';

根据注释,您需要定义_self:链接的阶段

<a href="#" target="_self">Link</a>

我相信postmessage()会帮助你

https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage

感谢Lawrence Johnson提醒我。您甚至不需要任何Javascript。链接的"目标"是一个窗口名称,因此只要它与窗口或iframe上的name属性匹配,链接就会在iframe中打开。链接可以在iframe内部或外部。我只是在http://ab1jx.1apps.com/pix/panoramas/index.html使用这个原理。每个图像都有自己的html包装器。当你点击iframe下面的链接时,他们会将包装器加载到他们的picframe目标中,在这个过程中更改图像。看看来源。

相关内容

  • 没有找到相关文章

最新更新