Как получить значение адреса http://... открытого в фрейме?
Из разных источников собрал вот такой скрипт, который должен при нажатии на кнопку "Заполнить форму" передать значение из браузерной строки сайта, который открыт на данный момент в фрейме.
Далее это значение будет обрабатываться и сохранятся. <?php if(isset($_POST[new_kartka])) $cont="<p align=center><font color=red>Результат сохранён</font></p>"; if(isset($_POST[http])&&$_POST[http]!="") { $content=' <html> <head> <title>Фрейм</title> <script type="text/javascript"> function inputt() { // Метка - 1 var iFrame=document.getElementById("iFrame").src; document.getElementById("rez_http").value=iFrame; document.getElementById("new_button").innerHTML="<input name=new_kartka type=submit value=Сохранить>"; } </script> </head> <body> <form name=enter action=index.php method=post> <p align=center>Сюда должно попасть значение http:// которое во фрейме открыто сейчас <input type=text id=rez_http name=rez_http size=50> <!-- Метка - 2 --!> <span id=new_button><a href="javascript:inputt()"><font color=green size=+1>Заполнить форму</font></a></span> </p> </form> <br/> <p align=center><a href=index.php>Сбросить поиск</a></p><br/> <iframe src="'.$_POST[http].'" id=iFrame align=center width=100% height=500></iframe> <!-- Метка - 3 --!> </body> </html>'; } else { $content=" <html> <head> <title>Ввод</title> </head> <body> ".$cont." <form name=enter action=index.php method=post> <p align=center>Введите адрес для старта нового поиска http://<input type=text name=http size=50> <input name=start type=submit value='Стартовать'></p> </form> </body> </html>"; } echo $content; ?> |
Alehandr0,
1. Фрейм на том жа домене, что и форма с кнопкой ? 2. Если на том же,(я так понял, что форма на основой странице), то адрес фрейма = iFrameName.location.href; iFrameName -> имя фрейма <iframe name="xxx" Т.е. var per = xxx.location.href; |
Немного не сработал Ваш вариант ответа.
Возможно задача поставлена некорректно. Второй подход. После старта скрипта появляется форма для ввода первоначального http:// адреса с другого домена, вводим, открывается страница с фреймом в котором открылся введённый адрес. Во фрейме я делаю произвольные переходы, даже на другие домены, и когда мне приглянулась инфа на странице я нажимаю на кнопку "Заполнить форму". В этот момент срабатывает javascript:inputt() который возвращает http:// адрес открытой сейчас в фрейме страницы. Результат будет отличаться от первоначального, так как я переходил на другие домены. . . . . . . . . . ну как-то так . . . . . . . . . . |
Alehandr0,
Обращение с главной к фрейму с текущим адресом окна с иного домена запрещено политикой безопасности браузера и лишь имея доступ к установке своих скриптов внутри фрейма можно получить текущий адрес из фрейма, либо пользуя старый ИЕ*типо 6 версии и ниже Вообще про кроссдоменный скриптинг можно посмотреть тут => http://javascript.ru/ajax/cross-domain-scripting |
Deff спасибо за помощь, но я не осилю эту задачу, поэтому отложу на месяц-годик-два до лучших мозгов.
P.S. Первоначальный скрипт отредактирован до приемлимой версии, но всё-равно не даёт решения задачи. |
А просто src фрейма получить не?
|
Ruslan_xDD,
Чел хочет получить адрес из фрейма после перехода по нужным/понравившимся ссылкам Задача решается имхо лишь проксированием фрейма, расположенном во фрейме проксирующего домена, созданого автором |
Deff, ну разумеется твой вариант xxx.location.href работать не будет. :)
Нам же нужно сначала в сам фрэйм попасть: xxx.contentWindow.location.href //или xxx.contentDocument.location.href Но если фрэйм на другом домене, то никак не получится получить доступ к фрейму. |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 12:16. |