Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Тег object - как получить его document (https://javascript.ru/forum/events/28982-teg-object-kak-poluchit-ego-document.html)

Deff 11.06.2012 16:54

neon121,
Принцип примерно
1. Делаем IFRAME ( не object) посколь object требует отдельного тестирования не иследовался
2. Скриптом в IFRAME записываем Данные в window.name и переадресуем IFRAME на адрес текущей страницы родителя
3. Скрипт IFRAME с Родительским адресом считывает данные из window.name IFRAME и отдает их родителю
4. Затем этот же скрипт может снова перезаписать свои данные в window.name IFRAME и отдать эти данные, сменив адрес в IFRAME на исходный

devote 11.06.2012 16:58

Deff,
для новых браузеров можно использовать postMessage а для старых да можно юзать window.name

Deff 11.06.2012 17:06

devote,
Лучше делать идентично - смысл в альтернативе ?
после первичной загрузки - и click-klask по History - где за раз можно до 2-х мегов передать через window.name - смысла в альтернативах имхо -нет

И можно реализовать связь не с одним кроссдоменом -а с 10 этим жа одним IFRAME

devote 11.06.2012 17:09

Цитата:

Сообщение от Deff
Лучше делать идентично - смысл в альтернативе ?

смысл в том что postMessage официальное нововведение, которое не вижу смысла не юзать.

Deff 11.06.2012 17:10

devote,
А ограничение по объему есть ? Одна из востребованных задач - передача файлов

devote 11.06.2012 17:12

Цитата:

Сообщение от Deff
devote,
А ограничение по объему есть ?

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

Deff 11.06.2012 17:22

Цитата:

Сообщение от devote
смысл в том что postMessage официальное нововведение, которое не вижу смысла не юзать.

:) Мну глядит далее - имея этот метод - мон создать скрипт который может позволять доступ при помощи только единственного юзер скрипта и только на одном из ресурсов к инодомену, актуально когда нет доступа к страницам второго ресурса. Есть идея как цеплять кроссбраузерно- кроссдоменно облачное хранилище яндекса на форум или сайт

devote 11.06.2012 17:50

Цитата:

Сообщение от Deff
актуально когда нет доступа к страницам второго ресурса. Есть идея как цеплять кроссбраузерно- кроссдоменно облачное хранилище яндекса на форум или сайт

для этих целей и window.name не поможет.

А пользоваться postMessage совсем не сложно, на основной странице пишем:
<iframe id="iframe" src="http://somesite.com/"></iframe>
<script type="text/javascript">
    var iframe = document.getElementById( 'iframe' );
    iframe.onload = function() {
        // отправляем сообщение удаленному сайту загруженному в iframe
        iframe.contentWindow.postMessage( "test", "*" ); // отправим test
    }

    window.addEventListener( "message", function( event ) {
        // тут получаем сообщение от удаленного сайта
        alert( event.data );
    }, false);
</script>
на удаленном сайте http://somesite.com/ пишем примерно туже байду:
<script type="text/javascript">
window.addEventListener("message", function( event ) {
    event.source.postMessage( "Привет, ты мне отправил: " + event.data, event.origin );
}, false);
</script>
как видишь ничего сложного, это простой вариант

Deff 11.06.2012 17:55

Цитата:

Сообщение от devote
А пользоваться postMessage совсем не сложно, на основной странице пишем:

СПС
:yes: Cижу в кроссдоменных запросах уже более полгода .. У нас сервис бесплатных форумов без доступа к движку, вдобавок и аякс был кривой до нового года, так что пришлось и так и эдак и еще как.. Делал и postMessage - много народу и с ИЕ и с кривыми браузами со всякими плагинами запрещающих обмен(Причём юзер об них не знает

neon121 11.06.2012 17:55

Как это провернуть с Iframe я знаю, но нужно именно с Object...


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