Окно JavaScript не работает в Firefox - PullRequest
2 голосов
/ 27 июля 2011

это действительно вызывает у меня головную боль:

с использованием javascript (скажем, на page1.html) я использую код, подобный приведенному ниже, для запуска нового окна:

var popwindow = window.open("http://www.stackoverflow.com");

iзатем передайте переменную popwindow функции, которая использует setTimeout для повторения каждые 3 или 4 секунды (эта часть не слишком важна, я не думаю).то, что делает этот маленький циклический код, - это (должен) проверять объект location всплывающего окна, чтобы увидеть, когда изменяется URL-адрес, и содержит некоторую определенную переменную строки запроса.

по большей части это работает;код повторяется, и, используя firebug, я вижу, что оконный объект передается как следует.

Моя проблема, однако, заключается в том, что всякий раз, когда я пытаюсь сделать любой доступ к popwindow.location.href или popwindow.location.search, javascriptсбои.я даже просто попытался сделать popwindow.location.toString(), чтобы самому получить эту информацию, но это также дает сбой.

когда я использую firebug, я вижу, что объект location, к которому я пытаюсь получить доступ,законный location экземпляр;firebug позволяет мне просматривать поля объекта location, когда скрипты приостановлены.однако, когда я пытаюсь получить доступ к этим вещам (я не пишу им, только читаю значения), это никогда не сработает ... в случае, если это полезно, я использую последнюю версию firefox (я верю, 5.0).

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Если упомянутое окно не находится в том же домене, что и окно, в котором находится скрипт, который вы запускаете, то браузер не позволит вам получить доступ к окнам между доменами.Это вызовет исключение.

1 голос
/ 27 июля 2011

С https://developer.mozilla.org/En/DOM/Window.open

windowObjectReference

Это ссылка, указывающая на вновь созданное окно браузера.Эта ссылка является возвращаемым значением метода open ();он будет нулевым, если по каким-либо причинам при выполнении не удалось открыть окно.Глобальная переменная лучше всего используется для хранения такой ссылки.Затем вы можете, например, использовать его для поиска свойств нового окна или доступа к его методам, предполагая, что ваши отношения основного и вторичного окон соответствуют Одинаковая политика происхождения Требования безопасности.

Я подозреваю, что это, вероятно, ваша проблема.Ссылка «Политика одинакового происхождения» более подробно описывает требования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...