好的,我在这里遇到了严重的问题。在我自己的电脑上,这段代码工作得很好。但是在我的同事身上,它在 IE 和 Firefox 中崩溃了。
var openlocation = window.opener.location.href;
在 window.opener 部分中断“权限被拒绝”。因此,在 opener 页面上,我编写了一个存储在外部 .js 页面中的函数:

var getLocation = function() {
    return window.location.href;
};

然后调用它,比如var openlocation = window.opener.getLocation();
有谁知道为什么会这样?

编辑:一页正在创建弹出窗口,并且它们都在同一个域中。
弹出页面有以下代码:

$(document).ready(function () {
    var openlocation = window.opener.getLocation();
    (function setTimer() {
        setInterval(function () {
            if (window.opener.location.href != openlocation) {    // they've changed screens
                window.close();
            }
        }, 15000);
    })();
  $("input#notescancel").click(function () {
        window.close();
  });
});

我已经尝试过使用我的 getLocation() 函数和只使用 window.opener.location.href 但是,对于除我之外的所有计算机,它都坏了。
谢谢。

最佳答案

可能是因为这两个窗口在不同的域上。浏览器甚至认为 sample.com 和 www.sample.com 是不同的。从技术上讲,它称为同源策略,

https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript

关于javascript - 在所有浏览器中使用 window.opener 的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5954973/

10-12 12:31