Проблемы с использованием window.opener во всех браузерах - PullRequest
3 голосов
/ 10 мая 2011

Хорошо, у меня здесь серьезные проблемы.На моем собственном компьютере этот код работает просто отлично.Но на моих коллегах это прерывается в IE и Firefox.

var openlocation = window.opener.location.href;

разрывы для «Отказано в доступе», в части window.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, но для всех компьютеров, кроме моего, она не работает.Спасибо.

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Я понял это.Я собирался углубиться в window.opener.location - для IE я должен остановить его там, преобразовать в строку и назвать это хорошим.Что я и сделал, и теперь он работает.

Итак, вместо window.opener.location.href я просто использовал window.opener.location.toString () для IE.

1 голос
/ 10 мая 2011

Это может быть потому, что 2 окна находятся в разных доменах. Даже sample.com и www.sample.com считаются разными браузерами. Технически это называется Политика единого происхождения,

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

...