Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   IE cross-window cross-domain messaging (https://javascript.ru/forum/css-html-internet-explorer/56872-ie-cross-window-cross-domain-messaging.html)

Deff 08.07.2015 18:48

Цитата:

Сообщение от Octane
фреймы не синхронизируют localStorage,

Т .е при записи в localStorage во фрейме - это событие в ином окне с этого же домена не отслеживается ?

Octane 08.07.2015 19:14

неа, в IE не возникает события

Octane 08.07.2015 19:20

Вот такая штука завелась:

- site1.com выполняет localStorage.removeItem('cross-window-postMessage-data')
- site1.com открывает в новом окне site2.com
- site2.com открывает в iframe site1.com/proxy.html
- site2.com выполняет iframe.contentWindow.postMessage('json', '*')
- proxy.html получает сообщение 'json' по событию message
- proxy.html выполняет localStorage.setItem('cross-window-postMessage-data', 'json')
- site1.com в интервале выполняет localStorage.getItem('cross-window-postMessage-data')

Deff 08.07.2015 19:37

Octane,
Да
Цитата:

- site1.com в интервале выполняет localStorage.getItem('cross-window-postMessage-data')
Это как-то не Айс...может проще вызывать функцию top.window.имя() из site1.com/proxy.htm и отдавать напрямую в top.window ?

Octane 08.07.2015 19:39

Не не, между site1.com и site1.com/proxy.html нет никакой связи, ни parent, ни opener, только localStorage

Deff 08.07.2015 20:00

Octane,
А ежли изначально в site1.com ячейку в localStorage установить - типо 'default', события при изменении/удалении этой ячейки во фрейме site1.com/proxy.htm не возникнет на site1.com?
Типо шаманю... Бывают такие фичи у ИЕ...

Octane 08.07.2015 20:14

Я в каком то полифиле видел коммент, что в IE при изменении одного и того же ключа не возникнет событие, пробовал разные ставить, ничего не помогает

Deff 08.07.2015 20:24

Octane,
А если ключ удалять ? (во фрейме) А писать в другой - а первый ключ чисто для события

Octane 09.07.2015 13:52

Сейчас еще раз попробовал в IE11, не все так плохо:

site2.com загружает в iframe site1.com/proxy.html

1. site1.com выполняет localStorage.setItem(…), в iframe не возникает события onstorage
2. iframe выполняет localStorage.setItem(…), на site1.com возникает событие onstorage

Впринципе можно использовать без интервала в одну сторону.

Deff 09.07.2015 13:56

Цитата:

Сообщение от Octane
в iframe не возникает события onstorage

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


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