Как получить значение адреса 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, время: 00:17. |