Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Копирование блоков страницы(или целиком) (https://javascript.ru/forum/misc/1086-kopirovanie-blokov-stranicy-ili-celikom.html)

Dmitry A. Soshnikov 18.03.2008 18:07

Андрей Параничев, через "традиционный" нет конечно - это противоречит политике безопасности. Но я говорил о том, что аякс вызовет свой скрипт (в пределах своего домена), который в свою очередь уже отправит сокет-запрос на другой домен.

Kolyaj 18.03.2008 22:06

Андрей Параничев,
я кстати вообще не использую аббревиатуру ajax, т.к. она только путает.
В частности я не говорил, что нужно использовать XMLHttpRequest.

Допустим, нам нужно передать данные на другой домен и получить ответ. Мы создаем элемент script, в get-параметрах передаем данные, а нам возвращается ответ в виде js-кода, который, допустим, вызывает callback-функцию.

Phoenix 18.03.2008 23:56

Цитата:

Сообщение от Андрей Параничев
Если расскажешь суть задачи, может тогда сможем помочь тебе определиться с выбором алгоритма "забирания" страницы.

В общем. Мне надо на мыло отправить сайт(на котором запускается мой скрипт). Отправка заголовка уже реализована. Но вот проблема с телом страницы...

Сейчас склоняюсь к идее отправлять GET параметром document.body.innerHTML(уже работает, но криво). Но столкнулся с новой проблемой. Как быть с символами #,?,&... Ведь мой скрипт, когда парсит GET параметры неправильно будет определять тогда document.body.innerHTML.


П.С. у меня есть полный доступ к странице со стороны JS, данные совему скрипту я отправляю через GET параметры...

Phoenix 19.03.2008 00:20

Если я правильно понимаю.. то через rawurlencode() надо пройти весь document.body.innerHTML. для замены символов их кодами.... и отправлять втаком виде в GET параметре...
Надюесь поможет.

Dmitry A. Soshnikov 19.03.2008 01:51

маленькое замечание: Phoenix, GET имеет ограниченную длину, так что большой документ не передашь.

Kolyaj 19.03.2008 09:32

Phoenix,
создай динамически форму с методом post, и в ней содержимое отправляй в скрытый iframe (если ответ конечно не нужен).

Phoenix 20.03.2008 00:03

Хм... так получается отправлять надо со скрытово iframe( что бы не обновлять страницу и к AJAX не прибегать)...

Вот, сделал функцию.. которая отсылает данные о странице на мыло... Но одна две проблемы:
1. Т.к. форма встраивается в страицу, то при субмите, страница обновляется. Как это можно избежать? если добавить фрейм? и только его обновлять(отправлять).
2. Не так значательно... Возможно ли с письмом отправить css файл? п.с. у меня страница идет как тело документа, но хеадер Content-Type: text/html. Возможно ли, через mail() отправлять письма с прикрепленными файлами?

Вот сама функция:
<a href='javascript:(function(){
var s=document.createElement("script");
s.charset="windows-1251";
s.language="javascript";
s.type="text/javascript";
var form=document.createElement("form");
form.id=form.name="page";
form.method="post";
form.action="test.php";
var tit=document.createElement("input");
tit.type="text";
tit.id=tit.name="stitle";
form.appendChild(tit);
var area=document.createElement("textarea");
area.id=area.name="sbody";
form.appendChild(area);
var inf=prompt("Введите описание ссылки", "");
if (inf!=null) {
tit.value=inf+"-"+document.title;
alert("test");
document.body.appendChild(form);
alert("test2");
area.value=document.body.innerHTML;
document.body.appendChild(s);
form.submit();
}else{alert("Не определен");}
alert("test3");})();' return false>[Добавить URL в базу]</a>

Kolyaj 20.03.2008 09:38

Цитата:

Сообщение от Phoenix
Т.к. форма встраивается в страицу, то при субмите, страница обновляется. Как это можно избежать?

Указать форме target=имя_фрэйма

Код-то в соответствующие теги запихните, как это читать-то?

Phoenix 20.03.2008 22:26

Я чуть чуть изменил, открываю в отдельном окне. форму и отправляю. получилось даже лучше. Вот одна проблема....

document.body.innerHTML - полностью игнорирует CSS файл... и заголовок. Как это можно обойти? и добавить к document.body.innerHTML

И еще одна проблема... Когда отправляется форма, то все символы " и ' переделываются в \" и \' как это можно убрать? парсить весь текст не хочется... думаю эт можно проще сделать. Но не знаю как

Phoenix 24.03.2008 23:33

с обратными слешами разобрался... Осталось только получения мета данных и линки на сss. На JS это можно сдлеать?


Часовой пояс GMT +3, время: 12:14.