Использование window.opener.location для доступа к незащищенному (http) открывателю из безопасного (https) всплывающего окна - PullRequest
3 голосов
/ 06 августа 2010

Я открываю всплывающее окно, которое находится под https с веб-страницы, которая находится под http. Когда я пытаюсь использовать команду window.opener.location. (Href / str / port / domain .. и т. Д.) Из всплывающего окна, чтобы получить URL-адрес страницы открывания, я получаю «Отказано в доступе». Я также использовал Firebug на Firefox, чтобы проверить это. Есть ли способ, которым я могу обойти это, используя другую команду или делая что-то еще. Если я открою URL открывания под https, я смогу получить к нему доступ из всплывающего окна. Я предполагаю, что это должно быть из-за наличия защищенного порта по сравнению с незащищенным. Я думал, что это должно быть возможно, так как я пытаюсь получить информацию о незащищенной странице с защищенной страницы.

По сути, я пытаюсь отсканировать URL-адрес открывающей страницы и проверить, содержит ли она определенную подстроку, я хочу выполнить определенную функцию. Любые альтернативные предложения для достижения этого также будут оценены.

1 Ответ

0 голосов
/ 08 августа 2012

Вы видите ошибку из-за той же политики происхождения.При сравнении двух доменов учитываются протокол, имя домена и порт.В вашем случае протоколы разные, поэтому вы получаете исключение «Отказано в доступе».Вы можете попробовать следующий трюк - когда вы открываете всплывающее окно, присвойте родительскому URL всплывающее окно window.name, которое должно быть доступно для всплывающего javascript.Кроме того, вы можете создать URL вашего всплывающего окна с хешем в конце, например: https://mydomain.com/page.html#http://mydomain.com/parent.html

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

...