![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| inlanger |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
Помогите, пожалуйста, с решением такой проблемы...
Есть страница с ифреймом. Необходимо получить и обработать "на лету" содержимое этого ифрейма. Именно то содержимое, которое сейчас на экране у пользователя(то есть к серверу обращаться нельзя). Единственное, что приходит в голову - вывести ифрейм на экран, с помощью javascript записать его содержимое в файл, в другом ифрейме через php получить содержимое файла и обработать... В правмльном направлении я мыслю? И как это реализовать(javascript часть)? Заранее огромное спасибо! |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
|
|||
|
||||
| inlanger |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
И куда это?
Я новичёк в javascript... Мне, пыхаписту, трудно понять этот код |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
У вас есть iframe как я понял он у вас невидимый. В него загружена некая информация. Приведенный код вернет вам эту информацию. Тоесть содержимое.
Вставте этот код в канец вашего файла с iframe и поймете что он возвращает. |
|||
|
||||
| inlanger |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
Выскакивает пустой алерт...
|
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
Значит либо у вас несколько iframe на странице или у вас туда ничего не подгружено изначально.
|
|||
|
||||
| inlanger |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.6.2008 Репутация: нет Всего: нет |
и ничего вообще не происходит... з.ы. пустой алерт это я уже сам намудрил. |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
Рекомендую ознакомится вот с этой статьей: http://www.kruglov.ru/articles/nontrivialjs/#iframe
Тоесть вот такой вариант:
будет работать при условие что file.html загружен с того же ресурса с которого загружен основной файл. Добавлено @ 23:01 А вообще помоему вы хотите получить нечто готовое не прилогая усилий так какк все что я расказал не является какойто нетривиальной вешью и выдается в числе первых ссылок поисковыми системами по запросу iframe javascript. Сами же вы даже видимо ничего и не пробовали найти. Это сообщение отредактировал(а) krundetz - 9.6.2008, 23:02 |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 5 Всего: 20 |
Например так
Выдаст ширину таблицы (id=tab1) в фрейме I1 Добавлено через 2 минуты и 11 секунд Если, конечно, в фрейме содержимое вашего сайта. -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| sergeyrg |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 22.12.2011 Репутация: нет Всего: нет |
а как быть если данные в ифрейме с другого домена, и уже пару форм отправлялось по посту, а мне
нужно только считать инфу из него а на любые попытки достучаться до контента фрейма (типа var ifr=parent.window.frames['ifr'].document.getElementById('restable').innerHTML;) получаю примерно такой ответ: Ошибка: Permission denied to access property 'document' :(((( Добавлено через 5 минут и 23 секунды вот нарыл в инете мысль: На своем домене сделать страницу-proxy. Т.е. по запросу к этой странице с параметром url — ваш серверный код (php, aspx, ...) будет слать запрос на указанный url и возвращать содержимое. Т.о. контент страницы любого url будет доступен с вашего домена. Теперь запрет на доступ к контенту снят, т.к. запрос на саму страницу и содержимое iframe — будут идти на один домен, что не является нарушением безопасности при попытке обращения через JS. У данного решения существует ряд устранимых недостатков. вопрос, как это сделать? да ещё так чтобы можно было форму по посту кинуть, и не просто форму, а с капчей заполненной. мож кто примерчик кода такой прокси редиректилки покажет? Добавлено через 8 минут и 31 секунду только желательно без курла - ибо курл картинку капчи при эхе результата перерисовывает другую |
|||
|
||||
| sergeyrg |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 22.12.2011 Репутация: нет Всего: нет |
удалось кое что сделать немного нетривиально, используя временные файлы браузера, если у вас задача схожа с моей - может мой пост кому-то поможет.
(заранее извиняюсь если упоминание php и иже - офтоп) у меня задача была такая: нужно было получать данные с чужого сайта, на каждый поиск вводилась капча; с помощью курла удалось только симитировать заполнение формы запроса, капчу не получилось подтверждать. мне нужно было по-максимуму автоматизировать, т.к. на количество запросов около 1000 каждый клик усложняет задачу. я сделал так: на моей странице циклически перебираются поисковые запросы, каждый запрос выводит в ифрейме форму ввода капчи, я ввожу буковки с картинки, подтверждаю, потом в этом же ифрейме показывается результат поиска за пределами ифрейма кнопочка которая просто перегружает страницу и уходит на следующий запрос. каждая такая страница сама по себе сохраняется во временных файлах со всем контентом, включая содержимое ифрейма, с одинаковыми именами (это у меня в конкретной ситуации, может быть и по-другому) типа "имя_файла[1].htm","имя_файла[2].htm" и т.д. (я пользовал ИЕ, может в других браузерах по-другому) мне остается только свалить это всё в отдельную папку, и отдельным перебрать в цикле и распарсить нужные мне данные. рад если помог, мне самому даже мелкий совет иногда экономит недели работы. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Ghirik, ну зачем же так сурово проверять метод получения ссылки на документ фрейма? Вот здесь я предлагал более простое решение:
|
|||
|
||||
| sergeyrg |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 22.12.2011 Репутация: нет Всего: нет |
я пробовал подобные схемы, но меня не пускает дальше .document ни ИЕ ни ФФ
на parent.window.frames['ifr'].document уже ошибка доступа, так же и на ..document.frames.ifr.document ..window.frames['ifr'].contentWindow ..document.getElementById("ifr").contentWindow я пробовал эту дыру безопасности микрософта в ИЕ - не работает, и в ИЕ6 и в ИЕ7 доступа нет: "Отказано в доступе" в ИЕ и Permission denied to access property в ФФ если есть рабочий пример, покажите плиз, мож я что не так делаю.... |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Дай-ка догадаться, видимо ты пытаешься получить доступ к элементам фрейма с другого сервера?
Вот тут я писал о невозможности такого действия:
|
|||
|
||||
| sergeyrg |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 22.12.2011 Репутация: нет Всего: нет |
про "нельзя" мне все поисковые сервера неделю шептали,
а мне "надо", и я нашел способ всё это обойти, кривовато - но свою задачу я выполнил ;) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |