Поскольку для проектов на коленках или оказания безвозмездной помощи душит жаба по написанию и использованию собственного прокси (требует денег и времени), - есть идея замены прокси существующими анонимайзерами.
================================================== =====================================
Идея позволяет: читать-писать контент и message на выбранном сайте,
производить авторизацию, ставить и исполнять скрипты.
================================================== =====================================
================================================== =====================================
Соль идеи такова:.
Все документы, подключенные через анонимайзер, - работают на одном домене.
.
Кроссдоменный обмен осуществляется с помощью фрейма
frame1 с переключаемыми вкладками (
"jumping tabs in frame"),
в котором находятся два документа-копии с текущего top.document, один из которых с тем же адресом, что и top.document, второй расположен на домене с анонимайзером.
Вкладки с документами обмениваются меж собой через
window.name. В итоге, через данный фрейм осуществляется взаимодействия документов на домене с анонимайзером и документов на домене с top.document.
Начальная установка:
1. Скрипт для установки обмена один, первично расположен на главном документе, состоит из трех частей, работающих в соответствующих '
document-N '.
Нужная часть срабатывает по анализу соответствующего ключа "
key" в текущем адресе документа.
Прим. Для '
addr0', используемого во фрейм-адресах, при наличии у top.document первоначального хеш(#...), - хеш удаляем;
2. Первоначально скрипт ставит фрейм
frame0 с адресом
anonimaiser+addr0+"#"+"key"+addr1,
где:
addr0 - адрес текущей страницы без хеша;
key - ключ - признак, необходимый для подключения и работы нужной части скрипта к соответствующему документу.
addr1 - адрес запрашиваемой страницы;
3. Часть скрипта работающего во фрейме
frame0 ставит внутри себя фреймы:
frame2 и
frame1,
frame2 - ставится первым.
frame1 - ставится с первичным адресом
anonimaiser+addr0+"#"+"key2";
4. document-2 во фрейме
frame1 переключается на
document-3 с адресом
addr0+"#"+"key3";
5. По onload
document-3 - запускаем callback функцию на
document-0 об окончании установки фреймов.
----------------------------
Зы: После окончания установки и запуска возможно добавлением новых адресов одновременной связи
простым добавлением во
frame0 - "еще один фрейм - еще один адрес"
И возможность организовать на клиенте сложносочиненный коммутируемый обмен меж этими сайтами.
================================================== ======
Обмен данными:
1. Обмен между документами:
document-3 и
document-0 лучше производить через LocalStorage, - это позволит продолжить сессию "кроссдоменного-обмена" после -закрытия/открытия/смены вкладки top.document.
2. "Jumping tabs in frame": Для организации обмена, вкладки с
document-2 и
document-3 переключаются туда-сюда.
....Обмен данными между вкладками с разных доменов во
frame1 производится через
window.name
3. Обмен между
document-2 и
document-4 лучше производить через функцию родительского
frame0 function preset.
Данная функция выполняет предустановки для окна
document-4 по onload при динамической смене адреса
addr1,
(к примеру использовал для установки во
frame2 по onload собственных стилей и библиотек jQuery),
а так же выполняет функции ожидания связи при запросе с
document-4 на
document-2 при включенной текущей вкладке
document-3.
=========================================
Дополнение1:
Для ускорения загрузки фреймов: (
document-1,
document-2,
document-3), сам скрипт ставим как можно ближе к началу страницы.
При наличии в текущем адресе вышеперечисленных ключей (
key,
key2,
key3) в конце скрипта выполняем:
document.write('<style>body{display:none}</style><plaintext>'),
чем обрезаем излишний контент страницы во фреймах.
=========================================
Дополнение2:
Распространенные анонимайзеры бывают трёх типов кодирования адресных ссылок:
anonimaiser+"?..."+addr;
anonimaiser+"?..."+base64(addr);
И с включением адреса в доменное имя третьего уровня(
пример http://anonymizer.ru/)
Для данной реализации подойдут лишь первых два типа.
=========================================
Дополнение3:
Кроссбраузерное LocalStorage =>
localStorage для IE6-7
функция base64:
Подскажите символьный паккер, лучше чем base64
Cписок анонимайзеров
http://ci-razvedka.ru/Anonymizer-v-k...-Razvedke.html
================================================== =====================================
Поскольку нет опыта в создании плагинов на чистом JS, - идея выложена как есть
для свободной реализации.