在我的一个页面中,我有一个iframe,它从一个不同于主页面的子域加载。 在这两个文档中,我将 document.domain 设置为相同,然后我尝试从父页面上的iframe调用方法,如:
window.parent.page.doit()
这在大多数浏览器(IE,firefox,chrome,safari)中运行良好,但在opera中失败,并显示以下错误消息:
未捕获的异常:ReferenceError:安全错误:尝试读取 受保护的变量:第
页
从我设法找到的内容来看,Opera似乎比其他浏览器更安全。有人遇到过这个问题吗?任何想法如何解决它或任何变通方法?
感谢。
答案 0 :(得分:0)
您必须在两个页面上将document.domain设置为二级域名,即
<强> maindomain.com 强>
document.domain = "maindomain.com";
<强> subdomain.maindomain.com 强>
document.domain = "maindomain.com";
答案 1 :(得分:0)
我已经看到Opera的某些版本(我认为大约11.60?)会缓存页面的安全信息或类似的东西,导致安全错误只有在清除缓存并重新启动后才会消失。它很难调试,但至少你的访问者通常不会遇到这个问题..