好的,我在这里遇到了严重的问题。在我自己的计算机上,这段代码运行得很好。但在我的同事身上,它在IE和Firefox中打破了。
var openlocation = window.opener.location.href;
在window.opener部分中断“Permission Denied”。因此,在开启者页面上,我编写了一个存储在外部.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
,但对于除我的所有计算机,它都会中断。
感谢。
答案 0 :(得分:1)
可能是因为2个窗口位于不同的域上。即使是sample.com和www.sample.com也被浏览器视为不同。从技术上讲,它被称为同源政策,
https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript
答案 1 :(得分:1)
我明白了。我要深入到window.opener.location - 对于IE,我应该在那里停止它,将它转换为字符串,并称之为好。这就是我所做的,它现在有效。
因此,我只使用window.opener.location.toString()代替window.opener.location.href。