Как узнать, с текущего домена ли открыто окно, если доступ к полям выдает исключение?
Со страницы открываю новое окно w = window.open(). После действий пользователя на стороннем домене должна открываться страница с текущего домена. Мне нужно отловить этот момент.
По таймеру смотрю w.location.hostname, и если hostname совпадает с текущим, делаю что-то.
Проблема в том, что обращение к w.location.hostname выдает «Error: Permission denied to access property 'hostname'». Конечно, всегда можно обернуть в try-catch, но это не спортивно. Может быть есть способ без исключения определить, страницу с текущего домена?
Не совсем понятно, как вы предлагаете сделать. Вариант сделать w.callback = function() {} провалился, потом что эта функция пропадает при переходам по страницам. Внутри открытой страницы w вызывать opener.callback() подразумевает что в исходной странице колбака будет в глобальной области видимости, чего хотелось бы избежать.
Что плохого в функции в глобальной области видимости? Если боитесь, что могут конфликтовать функции при открытии сайта в нескольких вкладках, вы можете при открытии окна генерировать номер вроде callback09090976 и передавать имя коллбека через GET-параметры открываемому окну.