Какие браузеры теперь поддерживают вызов window.postMessage? - PullRequest
54 голосов
/ 18 мая 2011

Какие сейчас браузеры поддерживают вызов window.postMessage?Я ищу браузеры, которые поддерживают его изначально, а не через взлом iFrame.

Ответы [ 5 ]

76 голосов
/ 18 мая 2011
11 голосов
/ 18 мая 2011

IE8 не разрешает postMessage через окна / вкладки

http://blogs.msdn.com/b/ieinternals/archive/2009/09/16/bugs-in-ie8-support-for-html5-postmessage-sessionstorage-and-localstorage.aspx

для получения дополнительной информации проверьте здесь

http://www.openajax.org/member/wiki/Browser_Variation_of_the_Hub_Reference_Implementation_%28Illustrative%29

7 голосов
/ 11 сентября 2014

postMessage поддерживается в IE8 + HOWEVER

  • Помните, что IE9 и ниже требуют передачи данных в виде строки, а не в виде объекта.
  • IE не любит, когда выВызовите postMessage, как только страница загрузится (я предполагаю, что это связано с тем, что отправляемый фрейм требует времени для загрузки).
    Используйте setTimeout, чтобы подождать одну или две секунды перед вызовом postMessage.
    Мне потребовались часы, чтобы понять это, и IE не выдавал мне сообщений об ошибках, он просто молча ничего не делал, пока я не добавил setTimeout.

Если вы хотите начать с демонстрации, которая действительно работает в IE, посмотрите это изящное руководство от Ильи Кантора

2 голосов
/ 27 марта 2014

В последнее время я столкнулся с некоторыми странными браузерами / версиями webkit, которые НЕ поддерживали postMessage.Я использовал IE (8) в качестве средства для поиска альтернативы.Вместо этого я, вероятно, должен был сделать что-то вроде этого:

if(window.postMessage){
    console.log('Supports post message');
}

Или, возможно, немного чище:

var pm_is_supported = typeof(window.postMessage) == 'function';
1 голос
/ 26 февраля 2018

Все последние браузеры поддерживают, например, IE 11, Edge, Firefox 57+, Dafari 11+, iOS Safari 10.2+, Opera mini, Chrome для Android, UC Browser и т. Д.

https://caniuse.com/#search=document%20messaging

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