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 17.03.2008 12:43

Phoenix, а на мыле у каждого своя кодировка (к тому же почти все сервисы и почтовые клиенты имеют возможность перекодировки). Если интересует текст в конкретной кодировке, можно преобразовать ее (например, функцией iconv(...) (или даже свою написать)) + в дополнении указать кодировку в header'e письма.

Kolyaj 17.03.2008 14:23

Цитата:

Сообщение от Phoenix
а некоторые в непонятной кодировке

Очень даже понятная: utf-8 в отображении windows-1251 :)

Phoenix 17.03.2008 20:00

про "iconv(...)" я знаю... но вот задача.. определить в какой кодировке страница(строка). Нашел функции. но многие некорректно работают. ищу дальше...

Dmitry A. Soshnikov 17.03.2008 22:54

Phoenix, да, поищи, у меня только на памяти mb_detect_encoding(...), да и то для ее работы должен быть модуль php_mbstring включен.

Phoenix 18.03.2008 10:47

Цитата:

Сообщение от Андрей Параничев
document.body.innerHTML

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

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

Dmitry A. Soshnikov 18.03.2008 11:38

Phoenix,

Цитата:

Сообщение от Phoenix
ведь, если через сокетное соединение, то теряются сессии

сокетом (или curl'ом) можно сначала войти в систему (создать сессию), отправив запрос с нужными логином и паролем

Цитата:

Сообщение от Phoenix
На сколько я понял, обмен данными возможен только между родительским и дочерними окнами

если просто JS - да

Цитата:

Сообщение от Phoenix
Следовательно, все же придется использовать AJAX. Или есть способы взаимодействия двух(не связаных окон между собой)?

если под "окном" ты подразумеваешь новое (независимое) окно браузера с произвольным адресом, то, конечно - нет, JS не получит к нему доступа (если только сам его не открыл, т.е. дочернее). Аякс лишь посылает запрос по адресу (ни о каких окнах тут речи не идет). Да и работает аякс в пределах своего домена (хотя есть хаки через прокси-iframe; того же самого можно добиться, вызвав аякс в пределах своего домена, а внутри серверной части - послать сокет-запрос к другому домену)

Kolyaj 18.03.2008 12:18

Цитата:

Сообщение от Phoenix
ведь, если через сокетное соединение, то теряются сессии

Куки можно из js в php передать.

Андрей Параничев 18.03.2008 16:20

В общем, чтоб не парится, попробуй поработать с классом Snoopy, там очень просто сделать и поддержание сессии, и установку cookies. JavaScriptом тут делать не рационально.

Стоит ли в твоей задаче получить содержание страницы, которую открыл авторизированный пользователь (логин и пароль которого ты не знаешь), и которая не видна без авторизации? Тут такой парсинг (через сокеты) будет невозможен. Да и кстати, через ajax разве можно сделать кроссайтовую передачу данных?

Вообще, опиши полностью задачу, тебе надо проверять есть ли в странице определённый элемент, или нужно сохранить документ в его определённом состоянии? Если расскажешь суть задачи, может тогда сможем помочь тебе определиться с выбором алгоритма "забирания" страницы.

Kolyaj 18.03.2008 16:30

Цитата:

Сообщение от Андрей Параничев
Да и кстати, через ajax разве можно сделать кроссайтовую передачу данных?

Вообще говоря можно, вопрос - нужно ли.

Андрей Параничев 18.03.2008 16:43

Kolyaj,
Хм, а тут написано что через традиционный ajax - нет :)

Цитата:

Вообще, документы с разных доменов, протоколов или с разных портов (кроме IE) одного домена не могут общаться друг с другом (согласно same origin policy), и нельзя посылать XMLHTTPRequest на домен, отличный от текущего.


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