Является ли window.opener надежным?

Является ли свойство JavaScript window.opener доступным для всех браузеров и не защищено от каких-либо настроек безопасности и ограничений любого типа? И открывающее, и открытое окно будут находиться в одном домене.

Кто-нибудь сталкивается с проблемами, плохой опыт использует его при определенных обстоятельствах?

Я спрашиваю, потому что я планирую создать инструмент, который в значительной степени зависит от него и должен поддерживать как можно больше платформ.

Ответ 1

Я уже был разработчиком на двух сайтах, которые широко используют window.opener, и я не знаю, в какое время он меня не подвел. Эти приложения были протестированы в IE [678], Firefox и Webkit; Я неофициально использовал Opera и не заметил проблемы там.

Теперь отношения "открыватель" по сути являются хрупкими, потому что вы не можете сделать так, чтобы ваши пользователи не посещали "cnn.com" в главном окне браузера, который использовался для открытия вашего отдельного всплывающего окна. Когда исходное окно загрузило новое содержимое, ссылка "window.opener" окна "child" в любом случае не принесет вам никакой пользы. Точно так же, когда пользователь идет и открывает новое главное окно браузера и перемещается на ваш сайт, ваши "сиротские" окна действительно не смогут его найти.

Конечно, я не могу предложить вам 100% гарантию, что все будет в порядке:-) Моя история верна. Возможно, моя зависимость от "window.opener" не была такой серьезной или глубокой, как то, что вы планируете; Я не могу сказать, что все в моих приложениях зависело от того, что работает.

Ответ 2

Стоит отметить, что window.opener не работает, если файл не загружается через HTTP-соединение в Chrome (хотя он отлично работает в Safari).

Ответ 3

Я использовал window.opener в своем приложении и нашел, что с ним приятно работать. Единственное ограничение, которое у него есть, - это активировать всплывающее блокирование пользователем, тогда новое окно не открывается, вызывая проблемы несколько раз.

Хорошая замена для этого (если проблема с блокировщиком всплывающих окон) заключается в использовании панели yui также JQuery UI является хорошим вариантом.

Кроме этого, я не сталкивался с какими-либо проблемами как таковыми, и он хорошо работал в браузерах.