14.01.2015, 23:42
|
Новичок на форуме
|
|
Регистрация: 14.01.2015
Сообщений: 4
|
|
Как получить значение адреса 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, 15.01.2015 в 15:42.
|
|
15.01.2015, 00:00
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Alehandr0,
1. Фрейм на том жа домене, что и форма с кнопкой ?
2. Если на том же,(я так понял, что форма на основой странице),
то адрес фрейма = iFrameName.location.href;
iFrameName -> имя фрейма <iframe name=" xxx"
Т.е.
var per = xxx.location.href;
|
|
15.01.2015, 01:22
|
Новичок на форуме
|
|
Регистрация: 14.01.2015
Сообщений: 4
|
|
Немного не сработал Ваш вариант ответа.
Возможно задача поставлена некорректно.
Второй подход.
После старта скрипта появляется форма для ввода первоначального http:// адреса с другого домена, вводим, открывается страница с фреймом в котором открылся введённый адрес.
Во фрейме я делаю произвольные переходы, даже на другие домены, и когда мне приглянулась инфа на странице я нажимаю на кнопку "Заполнить форму".
В этот момент срабатывает javascript:inputt() который возвращает http:// адрес открытой сейчас в фрейме страницы.
Результат будет отличаться от первоначального, так как я переходил на другие домены.
. . . . . . . . . ну как-то так . . . . . . . . . .
|
|
15.01.2015, 13:12
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Alehandr0,
Обращение с главной к фрейму с текущим адресом окна с иного домена запрещено политикой безопасности браузера и лишь имея доступ к установке своих скриптов внутри фрейма можно получить текущий адрес из фрейма, либо пользуя старый ИЕ*типо 6 версии и ниже
Вообще про кроссдоменный скриптинг можно посмотреть тут => http://javascript.ru/ajax/cross-domain-scripting
Последний раз редактировалось Deff, 15.01.2015 в 13:16.
|
|
15.01.2015, 15:28
|
Новичок на форуме
|
|
Регистрация: 14.01.2015
Сообщений: 4
|
|
Deff спасибо за помощь, но я не осилю эту задачу, поэтому отложу на месяц-годик-два до лучших мозгов.
P.S.
Первоначальный скрипт отредактирован до приемлимой версии, но всё-равно не даёт решения задачи.
Последний раз редактировалось Alehandr0, 15.01.2015 в 19:28.
|
|
15.01.2015, 15:42
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
А просто src фрейма получить не?
|
|
15.01.2015, 16:18
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Ruslan_xDD,
Чел хочет получить адрес из фрейма после перехода по нужным/понравившимся ссылкам
Задача решается имхо лишь проксированием фрейма, расположенном во фрейме проксирующего домена, созданого автором
|
|
15.01.2015, 18:23
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Deff, ну разумеется твой вариант xxx.location.href работать не будет.
Нам же нужно сначала в сам фрэйм попасть:
xxx.contentWindow.location.href
//или
xxx.contentDocument.location.href
Но если фрэйм на другом домене, то никак не получится получить доступ к фрейму.
Последний раз редактировалось ruslan_mart, 15.01.2015 в 18:25.
|
|
15.01.2015, 20:53
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Ruslan_xDD
|
Deff, ну разумеется твой вариант xxx.location.href работать не будет.
|
Этот Вариант давался для условия на том жа домене, что чел опроверг постом ниже
|
|
15.01.2015, 20:57
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Ruslan_xDD
|
Но если фрэйм на другом домене, то никак не получится получить доступ к фрейму.
|
Ток через проксирования ссылки во фрейме собственным ресурсом и обертывания его во фрейм самого прокси, тогда во фрейм с прокси-обертки ставим тот скрипт что я дал+ выкривление назад спроксированной ссылки( либо без обертывание, а чисто АPI к прокси, запроксировавшего фрейм, ибо последний get у него есть, но тут могут быть конфликты по скорости новых кликов юзера и запаздывания ответов прокси сервера)
Последний раз редактировалось Deff, 15.01.2015 в 21:02.
|
|
|
|