1

在我的一个页面中,我有一个 iframe,它是从与主页不同的子域加载的。在这两个文档中,我将document.domain设置为相同,然后尝试从父页面上的 iframe 调用方法,例如:

window.parent.page.doit()

这在大多数浏览器(IE、firefox、chrome、safari)中运行良好,但在 opera 中失败并显示以下错误消息:

未捕获的异常:ReferenceError:安全错误:试图读取受保护的变量:页面

从我设法找到的内容来看,Opera 似乎比其他浏览器具有更严格的安全性。有没有人遇到过这个问题?任何想法如何解决它或任何解决方法?

谢谢。

4

2 回答 2

0

我见过一些版本的 Opera(我认为是 11.60 左右?)缓存页面的安全信息或类似的东西,导致安全错误只有在清除缓存并重新启动后才会消失。调试很糟糕,但至少您的访问者通常不会遇到这个问题..

于 2012-03-15T12:38:59.200 回答
0

您必须在两个页面上将 document.domain 设置为二级域,即

maindomain.com

document.domain = "maindomain.com";

subdomain.maindomain.com

document.domain = "maindomain.com";
于 2012-03-06T18:05:58.640 回答