2013-03-26 30 views
3

我有一个带有iFrame的页面。我想更改父级的网址。
目前,我使用此代码:从iFrame更改父页面url可在IE中使用,但不能在Firefox和Chrome中使用

window.parent.location.href = window.parent.location.href + '?myParam=myValue' 

,并在IE 10,但不是在Firefox或Chrome。
在Firefox我收到以下错误:

Error: Permission denied to access property 'href'

页面和iframe共享主机,但在不同的端口,所以要根据Same origin policy它不会无法正常工作。
我的问题是:为什么它在IE中工作,以及如何使它在其他浏览器中工作?

编辑:下面的作品就好了:

window.parent.location.href = 'addressGoesHere.com?myParam=myValue'; 
在Mozilla Firefox

回答

2

试试这个

window.parent.location='?myParam=myValue'; 

我尝试和发现:你不能直接从不同访问的文件位置(得到它的价值)或间接(通过设置它的相对位置 - 它将成为相对于页面设置的位置 - 唯一的例外是设置散列(#123))。

所以实际的答案:

它工作在IE浏览器,因为它不符合standarts

和第二部分 - 是绝对没有办法。你应该尝试不同的沟通方式 - 如使用跨域postmessage(http://html5demos.com/postmessage2)或使用其他跨域通信方法,如http://easyxdm.net/wp

+0

我得到了以下错误:错误:权限被拒绝访问属性'valueOf' – Dido 2013-03-26 10:28:04

+0

我试过了发现:无法直接访问文档的位置(通过设置它的值)或间接(通过设置相对位置 - 它将相对于页面**设置**位置) - 唯一的例外是设置散列(#123 ))。所以实际答案:它在IE中工作,因为它不符合标准,第二部分 - 绝对没有办法。你应该尝试不同的沟通方式 - 例如使用跨域postmessage(http://html5demos.com/postmessage2)或使用其他跨域通信方法,如http://easyxdm.net/wp/ – 2013-03-26 10:40:45

+0

谢谢,我会与postMessage一起去 – Dido 2013-03-26 10:45:54

相关问题