12
votes

YouTube iframe API ne parvient pas à poster le message

pendant un certain temps maintenant, un morceau de JavaScript que j'ai écrit qui écoute les actions YouTube sur une certaine page a fonctionné à merveille. J'utilise Iframe JS API de YouTube: https://developers.google.com/youtube/iframe_api_reference . Mais un ajout de contenu récent, une vidéo YouTube spécifique, le suivi ne fonctionnerait pas. Les événements ne tiendront pas du tout.

Dans la console, j'ai remarqué cette erreur de message post: Impossible de poster le message à http://youtube.com. Le destinataire a l'origine http://www.youtube.com.

Alors rien avec mon propre code aidé. Quelques questions ici sur Stackoverflow suggéra que ceci est un problème avec l'initiation nouveau Yt.player trop tôt, j'ai essayé tout un tas de choses comme charger le fichier API YT JS sur Charger et appliquer uniquement l'API après, mais cela ne semblait pas faire de bonnes non plus.


0 commentaires

4 Réponses :


6
votes

Cela m'a pris sur une heure, mais la réponse était juste devant moi. C'est vraiment assez expliqué: Vous ne pouvez pas utiliser l'API JS de YouTube pour suivre une vidéo iframe sans www . Je ne sais pas pourquoi, cela ne le dit certainement pas dans leur documentation.

J'ai testé cela quelques fois et confirmé, à partir de maintenant, en suivant un iframe avec la source www.youtube.com/embed/0gn2kpbofs4 fonctionnerait merveilleusement pendant le suivi YouTube.com/ Intégrer / 0GN2KPBOFS4 va lancer:

Impossible de poster le message à http://youtube.com. Le destinataire a l'origine http://www.youtube.com.

La partie déroutante bien sûr est que la chargement vidéo et la lecture de la vidéo. Ce n'est que l'API qui ne fonctionne pas correctement.

Fiddle - http://jsfiddle.net/8tkgw/ (testé sur chrome / lion)

BTW, tout en écrivant cette réponse, j'ai rencontré YouTube Iframe API: Comment puis-je contrôler un joueur iframe qui est déjà dans le HTML? - Notez ce violon de ce type. Il a écrit sa propre implémentation iframe YouTube (WOW!). Si vous modifiez l'adresse source iframe dans le violon sur un sans www , il fonctionnera . Cela signifie seulement que YouTube écrit Bad JS. Mauvais mauvais mauvais!


0 commentaires

7
votes

Je sais que ce post a 3 ans, mais pour ceux qui recherchent toujours une réponse:

Ajoutez ce script et tout fonctionne bien: P>

<script src="https://www.youtube.com/iframe_api"></script>


1 commentaires

Merci, j'ai essayé beaucoup de choses, y compris 'Access-Control-Autory-Origin'. Mais seulement cela a aidé.



5
votes

N'oubliez pas de l'ajouter au Whitelist:

<!-- Add the whitelist plugin -->
<plugin name="cordova-plugin-whitelist" source="npm" spec="*"/>

<!-- White list https access to Youtube -->
<allow-navigation href="https://*youtube.com/*"/>


0 commentaires

2
votes

La documentation de l'API YouTube recommande de charger l'API comme ceci xxx pré>

mais obtenir cette erreur: p>

Impossible de poster le message à http://youtube.com . Le destinataire a l'origine http://www.youtube.com h1>

voici la meilleure solution J'ai trouvé à partir de ce site p>

Ajoutez-le en premier avant d'appeler l'API P >

function onYouTubeIframeAPIReady () {// do stuff here}


0 commentaires