Подтвердить что ты не робот

Какие браузеры поддерживают вызов window.postMessage?

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

4b9b3361

Ответ 3

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

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

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

Ответ 4

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

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

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

var pm_is_supported = typeof(window.postMessage) == 'function';