• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Парсинг данных из Iframe на Javascript

  • Автор темы Artem325
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Artem325

Вопрос такой вот...вся страница открывается с одного сайта, а ифрейм - с другого. Нужно всё, что прийдёт в него (туда приходят данные в XML- или JSON-формате) взять в переменную. как это сделать?
 
A

Artem325

ну мне нужно это как нибудь отправить в свой скрипт через XMLHttpRequest. с этим уже разберусь. мне бы засунуть то, что придёт.
Код:
<iframe id="content" name="content" src="{$url}"></iframe>

Добавлено: Просто я в яваскрипте никак=) но появилась необходимость=) есть альтернатива: учить флеш и actionscript. но я думаю, лучше остановиться на яве и хтмл=)
 
A

Artem325

хм...на document.getElementById("content").body пишет undefined. какое можно свойство взять для этого, если не это?
 
A

Artem325

Дело в том, что в innerHTML содержится всё, что в родительском фрейме. а мне нужно именно из фрейма "content". и это всё несмотря на то, что я делаю document.getElementById("content").document.body.innerHTML
 
A

Artem325

Так вообще никакой реакции на клик=(
 
A

Artem325

Код:
<a href=# onClick=getResp()>123</a>
Такое название функции потому, что она должна принимать ответ от одного сервера из ифрейма и отправлять в мой скрипт.
Но реакции вообще никакой...

Добавлено: контент всего родительского фрейма выдаёт...=(
 
@

@rtem

Такое название функции потому, что она должна принимать ответ от одного сервера из ифрейма и отправлять в мой скрипт.
Но реакции вообще никакой...

а если так
Код:
<a href="java script:getResp();">123</a>
???

и еще можно увидеть json-массив который приходит?

только javascript вместе)))

если можешь подключить jquery, то попробуй такой способ

Код:
console.log(jQuery("#example-1 div.code-demo iframe").contents()[0].activeElement.contentDocument.body.innerHTML);

или

alert(jQuery("#example-1 div.code-demo iframe").contents()[0].activeElement.contentDocument.body.innerHTML);

вбей этот код в консоль в firebug по и получишь содержимое нижнего iframe.
 
A

Artem325

Массив приблизительно такой, это зависит от запроса:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">JSON</div></div><div class="sp-body"><div class="sp-content">{"error":{"error_code":4,"error_msg":"Incorrect signature","request_params":[{"key":"api_id","value":"1877374"},{"key":"format","value":"JSON"},{"key":"method","value":"getFriends"},{"key":"v","value":"2.0"},{"key":"sig","value":"0bf0883e55aedda3d029ee5606e308f7"}]}}
JQuery подключить не пробовал, но с предыдущим кодом тоже никакой реакции
 
A

Artem325

Предыдущий код:
Код:
<a href="java script:getResp();">123</a>
Мне нужно взять весь массив и отправить его своему PHP скрипту через XHR. Для этого мне нужно это всё как-то взять.
Ну выяснилось, что всё таки мне это не очень срочно нужно=)
 
@

@rtem

это как я понял через ajax. самый простой вариант, подключаешь jQuery, и пишешь такой код.

Код:
var jsonArray = {"error":{"error_code":4,"error_msg":"Incorrect signature","request_params":[{"key":"api_id","value":"1877374"},{"key":"format","value":"JSON"},{"key":"method","value":"getFriends"},{"key":"v","value":"2.0"},{"key":"sig","value":"0bf0883e55aedda3d029ee5606e308f7"}]}};

jQuery.ajax({
type: "POST",
url: "some.php",
data: {"jsArray": jsonArray},
dataType: "json"
});

ну, а в своем php скрипте вынимаешь из поста, массив и обрабатываешь.


вот простой пример, вызова функции, как в прошлом коде, и вывод содержимого iframe
 

Вложения

  • iframe.rar
    23,9 КБ · Просмотры: 216
A

Artem325

Такс, если вы думаете, что я партизан - то...вы меня раскусили=)
Вот что я вообще планирую:
создаю IFrame-приложение вконтакте. А это мне нужно, чтобы с апи контакта работать на своём сайте=)
Вот и всё=)
 
A

Artem325

Если я пытаюсь получить содержимое фрейма из главного окна, то работает. А у меня целевой фрейм находится так: окно->фрейм->фрейм.
И так не работает=(
 
A

Artem325

это как я понял через ajax. самый простой вариант, подключаешь jQuery, и пишешь такой код.

Код:
var jsonArray = {"error":{"error_code":4,"error_msg":"Incorrect signature","request_params":[{"key":"api_id","value":"1877374"},{"key":"format","value":"JSON"},{"key":"method","value":"getFriends"},{"key":"v","value":"2.0"},{"key":"sig","value":"0bf0883e55aedda3d029ee5606e308f7"}]}};

jQuery.ajax({
type: "POST",
url: "some.php",
data: {"jsArray": jsonArray},
dataType: "json"
});

ну, а в своем php скрипте вынимаешь из поста, массив и обрабатываешь.


вот простой пример, вызова функции, как в прошлом коде, и вывод содержимого iframe
Это сработало. Спасибо=)
 
@

@rtem

А у меня целевой фрейм находится так: окно->фрейм->фрейм.
И так не работает=(

как я понял у тебя окно там iframe1 в котором есть iframe2 и тебе нужно получить содержимое iframe2, правильно??? можешь выложить пример страницы с фреймами??? и указать содержимое какого тебе нужно получить... Тогда можно будет разговаривать дальше.
 
A

Artem325

Такс. Это приложение вконтакте. После перехода на страницу приложения, контакт создаёт фрейм, в который загружается вся моя инфа с моего сайта. В этой инфе есть ещё один фрейм, который предназначен для того, чтобы подгружал страницу контакта. И из него мне и нужно получить информацию. Пример кода привести не могу, так как сложно копаться в коде контакта.
Ну, я недавно осознал, что мне это не очень-то и нужно. Так что забейте=)
Спасибо всем за помощ=)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!