Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.01.2015, 23:42
Новичок на форуме
Отправить личное сообщение для Alehandr0 Посмотреть профиль Найти все сообщения от Alehandr0
 
Регистрация: 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.
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2015, 00:00
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Alehandr0,
1. Фрейм на том жа домене, что и форма с кнопкой ?
2. Если на том же,(я так понял, что форма на основой странице),
то адрес фрейма = iFrameName.location.href;

iFrameName -> имя фрейма <iframe name="xxx"
Т.е.
var per = xxx.location.href;
Ответить с цитированием
  #3 (permalink)  
Старый 15.01.2015, 01:22
Новичок на форуме
Отправить личное сообщение для Alehandr0 Посмотреть профиль Найти все сообщения от Alehandr0
 
Регистрация: 14.01.2015
Сообщений: 4

Немного не сработал Ваш вариант ответа.
Возможно задача поставлена некорректно.
Второй подход.
После старта скрипта появляется форма для ввода первоначального http:// адреса с другого домена, вводим, открывается страница с фреймом в котором открылся введённый адрес.
Во фрейме я делаю произвольные переходы, даже на другие домены, и когда мне приглянулась инфа на странице я нажимаю на кнопку "Заполнить форму".
В этот момент срабатывает javascript:inputt() который возвращает http:// адрес открытой сейчас в фрейме страницы.
Результат будет отличаться от первоначального, так как я переходил на другие домены.
. . . . . . . . . ну как-то так . . . . . . . . . .
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2015, 13:12
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Alehandr0,
Обращение с главной к фрейму с текущим адресом окна с иного домена запрещено политикой безопасности браузера и лишь имея доступ к установке своих скриптов внутри фрейма можно получить текущий адрес из фрейма, либо пользуя старый ИЕ*типо 6 версии и ниже
Вообще про кроссдоменный скриптинг можно посмотреть тут => http://javascript.ru/ajax/cross-domain-scripting

Последний раз редактировалось Deff, 15.01.2015 в 13:16.
Ответить с цитированием
  #5 (permalink)  
Старый 15.01.2015, 15:28
Новичок на форуме
Отправить личное сообщение для Alehandr0 Посмотреть профиль Найти все сообщения от Alehandr0
 
Регистрация: 14.01.2015
Сообщений: 4

Deff спасибо за помощь, но я не осилю эту задачу, поэтому отложу на месяц-годик-два до лучших мозгов.
P.S.
Первоначальный скрипт отредактирован до приемлимой версии, но всё-равно не даёт решения задачи.

Последний раз редактировалось Alehandr0, 15.01.2015 в 19:28.
Ответить с цитированием
  #6 (permalink)  
Старый 15.01.2015, 15:42
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

А просто src фрейма получить не?
Ответить с цитированием
  #7 (permalink)  
Старый 15.01.2015, 16:18
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ruslan_xDD,
Чел хочет получить адрес из фрейма после перехода по нужным/понравившимся ссылкам
Задача решается имхо лишь проксированием фрейма, расположенном во фрейме проксирующего домена, созданого автором
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2015, 18:23
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Deff, ну разумеется твой вариант xxx.location.href работать не будет.
Нам же нужно сначала в сам фрэйм попасть:

xxx.contentWindow.location.href

//или

xxx.contentDocument.location.href


Но если фрэйм на другом домене, то никак не получится получить доступ к фрейму.

Последний раз редактировалось ruslan_mart, 15.01.2015 в 18:25.
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2015, 20:53
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Ruslan_xDD
Deff, ну разумеется твой вариант xxx.location.href работать не будет.
Этот Вариант давался для условия на том жа домене, что чел опроверг постом ниже
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2015, 20:57
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Ruslan_xDD
Но если фрэйм на другом домене, то никак не получится получить доступ к фрейму.
Ток через проксирования ссылки во фрейме собственным ресурсом и обертывания его во фрейм самого прокси, тогда во фрейм с прокси-обертки ставим тот скрипт что я дал+ выкривление назад спроксированной ссылки( либо без обертывание, а чисто АPI к прокси, запроксировавшего фрейм, ибо последний get у него есть, но тут могут быть конфликты по скорости новых кликов юзера и запаздывания ответов прокси сервера)

Последний раз редактировалось Deff, 15.01.2015 в 21:02.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значение php переменной sanyalex AJAX и COMET 1 30.10.2011 22:45
Как получить значение title с помощью js? faforty Общие вопросы Javascript 4 25.08.2011 18:47
Не могу получить значение атрибута DenQ jQuery 9 06.02.2011 14:33
Ссылка test.php?ID=33 Как получить в переменную значение 33 из URL? Anatuz Общие вопросы Javascript 1 27.07.2010 13:32
Как правильно получить введенные данные в поле? buket jQuery 11 11.04.2010 19:59