57 votes

Quels navigateurs prennent en charge l'appel window.postMessage maintenant?

Quels sont tous les navigateurs qui prennent en charge l'appel window.postMessage maintenant? Je recherche des navigateurs qui le prennent en charge de manière native, et non via un piratage iFrame.

79voto

Raynos Points 82706

Puis-je utiliser la messagerie entre documents

FF3 +, IE8 +, Chrome, Safari (5?), Opera10 +

11voto

7voto

user3765149 Points 1

postMessage est pris en charge dans IE8+ CEPENDANT

  • Rappelez-vous que IE9 et au-dessous de besoin de données pour être passé en la forme d'une chaîne et non pas comme un objet.
  • IE n'est pas comme vous appelez postMessage dès que le chargement de la page (je suppose que cela a à voir avec l'iframe que vous envoyez à besoin de temps de charge).
    Utiliser un setTimeout à attendre une ou deux secondes avant d'appeler postMessage.
    Il m'a fallu des heures pour comprendre cela et IE n'était pas de me donner de message d'erreur, c'était juste silencieusement de ne rien faire jusqu'à ce que j'ai ajouté le setTimeout.

Si vous souhaitez commencer avec une démo qui fait le travail dans IE, découvrez cette chouette tutoriel par Ilya Kantor

2voto

benipsen Points 162

Pour ce qui en vaut la peine, j’ai rencontré des versions / navigateurs Webkit étranges qui ne prenaient PAS en charge postMessage. J'utilisais la détection IE (8) comme moyen de rechercher une alternative. Au lieu de cela, j'aurais probablement dû faire quelque chose comme ceci:

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

Ou probablement un peu plus propre:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X