Как сохранить html-код внешней страницы
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как сохранить html-код внешней страницы Expand / Collapse
Автор
Сообщение
07.08.2007 16:34
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.09.2007 17:05
Сообщ.: 14, Visits: 26
Люди знающие помогите плз.

Есть страница с тэгом form. В форме несколько полей (input), данные из которых передаются внешней странице (после нажатия submit). Эту страницу я подгружаю в iframe на этой же странице.

Мне нужен скрипт, который сохранял бы содержимое страницы из iframe в переменную, с которой потом можно работать (искать слова и т.п.)

Здесь похожий вопрос. Попробовал сделать так же:

Это кнопка submit в конце form

<input type='submit' value='Отправить' onclick='onSend();' />

А это функция: (sms - name ifram'а)

function onSend()
 {
   var sScript = new String;
   sScript = document.sms.document.documentElement.outerHTML;
   alert(sScript);
 }

Но alert выводит вот что: (и то только при первом нажатии)

В опере:

<HTML dir="ltr" lang="ru"><HEAD><TITLE>Пустая страница</TITLE></HEAD><BODY>

В ie:

<HTML><HEAD></HEAD><BODY></BODY><HTML>

Не могу разобраться в чем проблема, т.к. не силен в яваскрипт. Подскажите как мне реализовать это...

Сообщ. #915201
07.08.2007 17:04
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Здесь две проблемы: 1) Метод onclick срабатывает до реальной отправки данных странице и конечно же iframe будет пустой. Надо дожидаться окончания загрузки страницы и только тогда обращаться к outerHTML. 2) Если внешняя страница находится в другом домене, то даже исполнение п.1 не поможет так как бразуеры не разрешают доступ к документам из других доменов из соображений безопасности.

Лучшим выходом будет использования AJAX для запроса к сайту и получения текста страницы. Примеры можно найти на нашем форуме и в сети.

Сообщ. #915203
07.08.2007 17:21
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.09.2007 17:05
Сообщ.: 14, Visits: 26
Хм, не понял что это значит, но попробую поискать про этот аякс...
Сообщ. #915206
07.08.2007 18:12
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
Если правильно понял, то тебе данные из формы надо отобразить в iframe...

<form name="form1">
<input type="text" name="text1"><br>
<input type="button" value="Отправить в iframe" onClick="A()">
<form>

<script>
function A() {
frames['Name_iframe'].body.innerHTML="<h1>"+document.form1.text1.value+"</h1>"
}
</script>


frames['Name_iframe'].body.outerHTML -- содержимое iframe


----------------------------------
Я безработный...
Возьмите меня на работу. =)
Сообщ. #915211
07.08.2007 18:55
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.09.2007 17:05
Сообщ.: 14, Visits: 26
Нет, в iframe грузится внешний сайт, а в тот сайт передаются данные из формы (это работает). А мне нужен код этой страницы, которая грузится во фрэйме.

Но домен действительно другой, значит можно не пытаться (если базиль прав). Сейчас приходиться придумывать обходные пути...

Сообщ. #915212
08.08.2007 14:07
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.09.2007 17:05
Сообщ.: 14, Visits: 26
Хм, а можно ли тогда, после загрузки сайта в iframe, позиционировать его в нужное место? Объясню:

Пусть iframe размером 460х55. Когда сайт в него загружается, то по умолчанию виден левый верхний угол того сайта. Как можно проскролить тот сайт, скажем на 200px вниз и 200px вправо?

Сообщ. #915229
08.08.2007 15:28
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
У меня так получилось:

<iframe name="f1" ...></iframe>
...
<script language="javascript">
function scrollIframe()
{
    window.frames["f1"].scrollTo(200,200);
}
</script>

Сообщ. #915231
08.08.2007 17:39
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 27.09.2007 17:05
Сообщ.: 14, Visits: 26
<iframe FRAMEBORDER=0 name='sms' width=460 height=55 border=0 marginwidth=0 marginheight=0 scrolling='no' onload='scrollIframe()'></iframe>

Эта функция срабатывает только при обновлении всей страницы, а если обновляется только содержимое iframe, то она не выполняется вообще. И выходит так, что сначало загружается моя страница (в iframe ничего нет), срабатывает функция, затем я жму на кнопку которая загружает в iframe внешний сайт (сама страница не обновляется), но скрипт игнорируется... Если заного обновить всю страницу, то опять срабатывает.

Надеюсь я вас не запутал? Если надо, могу подробно объяснить принцип функционирования страницы.

Сообщ. #915233
08.08.2007 18:02
Supreme Being

Supreme BeingSupreme Being