![]() |
Access to other window/document
Добрый день, уважаемые!
Проблема такая. На странице с домена domain1 есть гиперссылка, по нажатию на которую появляется окно: newWin = window.open("http://domain2/page.html","newWinName"); Как получить доступ к окну/документу newWin, так чтобы у окна с домена domain1 был доступ к объектам окна с домена domain2? В частности, нужно заполнить автоматом поля формы с этой "чужой" страницы + на этой странице поменять у некоторых контролов формы визуальные стили - все это надо делать скриптом в теле страницы с domain1. Не знаю, как это можно сделать. Помогите пожалуйста. Спасибо. С уважением, |
Посмотрите в сторону глобальных массивов php.
|
При чем здесь глобальные массивы PHP? Вопрос по JS/DHTML.
|
newWin - это и есть твое созданное окно , бери и доступайся как обычно newWin.document... Если надо из открытого доступиться до того откуда открыли, используется объект window.opener.document... или я не понял в чем проблема... Вот если ноды ты хочешь клонировать в иерархию другого документа - это другой вопрос :)
Вот, хороший справочник, тут информация достовернее, чем в МСДН... обрати внимание на метод importNode... |
Из одного окна в общем случае нельзя получить доступ к свойствам другого, если они принадлежат разным доменам. Единственный возможный способ - это если у тебя страницы расположены на различных доменах третьего уровня, но домены второго уровня совпадают, то можно понизить строгость проверок до совпадающего домена через установку document.domain. Вот тут подробнее написано.
В остальных же случаях остается только передавать через URL или post-запрос новому окну список параметров, чтобы оно само себя уже настраивало после открытия. |
К сожалению, да, домены совершенно разные, т.е. с своего домена domain1 я хочу получить доступ к окну с постороннего домена domain2. Передача через УРЛ нужных мне параметров затруднена, т.к. на domain2 нужная мне страница не может принимать этих параметров, а только дает возможность юзеру заполнить форму самому. А надо автоматом
2 /7y3uK: Вы предлагаете клонировать весь документ в документ у себя как есть, чтобы с ним можно было делать что угодно, в силу того что к документу с чужого домена нет доступа полного? Я правильно понял? |
Эта тема вам случаем не поможет?
http://imho.ws/showthread.php?t=106849 |
Спасибо, близко к теме, но все-таки не то. Здесь нужно просто с сайта из базы данных пару записей отпарсить (это как раз не проблема) и занести в форму на странице с совершенно другого сайта. Форму ту я уже изучил, знаю названия тех полей, что надо заполнить. А передать туда ну никак не получается. Технологией DOM не получается так же, т.к. она хороша, когда документ с нашего же домена - здесь же документ с чужого сайта. Плюс еще и куки, session_id etc.
|
решение нужно кросс-браузерное?
|
Саруман, да, желательно кросс-браузерное. Но и просто для IE/FF/Mozilla - тоже сойдет. Я никак не могу понять в какую сторону копать... Я новичок, всего лишь учусь
|
кросс-браузерно и без участия юзера не решишь. Можно либо извратиться каким-нибудь ActiveXом (IE-only, ессно), либо юзер может указать сайты как trusted - тогда они смогут друг к другу обращаться, и т.п. Общего решения без участия пользователя нет.
В зависимости от твоих целей, возможно, стоит рассмотреть обходные пути решения задачи. Навскидку пара идей. Некоторые сайты при отправке неправильно заполненой формы возвращают ее же на дозаполнение, подставляя значения переданных полей. Соответственно, можно отправлять подобный запрос на сайт, который будет открывать уже заполненную форму, думая, что она была передана пользователем. Если же цель просто отправить запрос на другой сайт - можно выдать аналогичную форму у себя и, после заполнения ее юзером, отправить ее на целевой сайт, подменив referer и т.п. |
Да, кроссбраузерно врядли сделаешь. Для разных браузеров есть решения, но всеравно пользователю должен быть запрос. Для ФФ например, нужно подписывать скрипт, и пользователя спросят о разрешении тогда.
http://imho.ws/showthread.php?t=80584 особенно полезны ссылки из последнего поста Al-x. |
Часовой пояс GMT +4, время: 11:26. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.