javascript window.location无法在firefox中运行

时间:2011-07-27 19:49:01

标签: javascript firefox popup window.location

这个真让我头疼:

使用javascript(让我们说在page1.html上)我使用类似于下面的代码来启动一个新窗口:

var popwindow = window.open("http://www.stackoverflow.com");

然后我将popwindow变量传递给一个使用setTimeout每3或4秒重复一次的函数(这部分不太重要,我不认为)。这个小循环代码的作用是(应该)检查弹出窗口的location对象,以查看url何时更改并包含某些特定的查询字符串变量。

在大多数情况下,这是有效的;代码重复,并使用firebug,我可以看到窗口对象正在按原样传递。

我的问题是,无论何时我尝试访问popwindow.location.hrefpopwindow.location.search,javascript都会崩溃。我甚至只是试着做popwindow.location.toString()来自己解决这个问题,但也崩溃了。

当我使用firebug时,我可以看到我尝试访问的location对象是一个合法的location实例;当我暂停脚本时,firebug允许我浏览location对象的字段。然而,当我尝试访问这些东西时(我不是写它们,只读取值)它永远不会工作......万一它有用,我使用的是最新版本的firefox(5.0我相信)。 / p>

2 个答案:

答案 0 :(得分:2)

如果引用的窗口与您正在运行的脚本所在的窗口不在同一个域中,则浏览器将不允许您访问跨域窗口。它会引发异常。

答案 1 :(得分:1)

来自https://developer.mozilla.org/En/DOM/Window.open

  

windowObjectReference

     

这是指向新创建的浏览器窗口的引用。此引用是open()方法的返回值;如果由于某些原因执行没有成功打开窗口,它将为null。全局变量最适合用于存储此类引用。例如,您可以使用它来查找新窗口的属性或访问其方法,假设您的主窗口关系符合Same origin policy安全要求。

我怀疑这可能是你的问题。 “同源政策”链接更详细地记录了这些要求。