Okay, I'm having serious problems here. On my own computer, this code works just fine. But on my coworkers, it breaks in IE and Firefox.
var openlocation = window.opener.location.href;
breaks for "Permission Denied", on the window.opener part. So, on the opener page, I wrote a function that's stored in an external .js page:
var getLocation = function() {
return window.location.href;
};
and then calling that, like
var openlocation = window.opener.getLocation();
Does anyone have any idea why this is breaking?
Edit: One page is creating the popup, and they're both on the same domain. The popup page has the following code:
$(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();
});
});
I've tried with both my getLocation()
function and just using window.opener.location.href
but, for all computers but mine, it breaks.
开发者_StackOverflowThanks.
It may be because that the 2 windows are on different domains. Even sample.com and www.sample.com are considered different by the browser. Technically its called Same Origin Policy,
https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript
I figured it out. I was going to deep into window.opener.location - for IE, I should stop it there, convert it to a string, and call it good. Which is what I did, and it now works.
So, instead of window.opener.location.href, I just used window.opener.location.toString() for IE.
精彩评论