好的,我在这里遇到了严重的问题。在我自己的电脑上,这段代码工作得很好。但是在我的同事身上,它在 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/