Esta é a mensagem de erro que recebo:
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.youtube.com') does not match the recipient window's origin ('http://localhost:9000').
Vi outros problemas semelhantes nos quais a origem do destino é http://www.youtube.com
e a origem do destinatário é https://www.youtube.com
, mas nenhum como o meu, onde o destino é https://www.youtube.com
e a origem é http://localhost:9000
.
Eu acredito que este é um problema com a origem do alvo sendo https
. Eu suspeito que seja porque o seu URL do iFrame está usando http
vez de https
. Tente alterar o URL do arquivo que você está tentando incorporar para ser https
.
Por exemplo:
var id = getId(url); return '//www.youtube.com/embed/' + id + '?showinfo=0&enablejsapi=1&origin=http://localhost:9000'; }
ser estar:
var id = getId(url); return 'https://www.youtube.com/embed/' + id + '?showinfo=0&enablejsapi=1&origin=http://localhost:9000'; }
Definir isso parece resolvê-lo:
this$1.player = new YouTube.Player(this$1.elementId, { videoId: videoId, host: 'https://www.youtube.com',
Você pode salvar em arquivos locais:
No primeiro arquivo, o player_api coloca este código:
if(!window.YT)var YT={loading:0,loaded:0};if(!window.YTConfig)var YTConfig={host:"https://www.youtube.com"};YT.loading||(YT.loading=1,function(){var o=[];YT.ready=function(n){YT.loaded?n():o.push(n)},window.onYTReady=function(){YT.loaded=1;for(var n=0;n
Em segundo, encontre alguns como: this.a.contentWindow.postMessage (a, b [c]);
e mude para:
if(this._skiped){ this.a.contentWindow.postMessage(a,b[c]); } this._skiped = true;
Claro, você pode concatenar em um arquivo - será mais eficiente. Esta não é uma solução perfeita, mas funciona!
Minha fonte: yt_api-concat
PS: Desculpe, o inglês não é meu primeiro idioma.
Basta adicionar o parâmetro "origin"
com o URL do seu site no atributo paramVars
do player, assim:
this.player = new window['YT'].Player('player', { videoId: this.mediaid, width:'100%', playerVars: { 'autoplay': 1, 'controls': 0,'autohide':1,'wmode':'opaque','origin':'http://localhost:8100' }, }
Eu acho que a descrição do erro é enganosa e tem originalmente a ver com o uso errado do object jogador.
Eu tive o mesmo problema ao mudar para novos vídeos em um Slider.
Quando simplesmente usar a function player.destroy()
descrita aqui, o problema desapareceu.
Tente usar window.location.href
para que o URL corresponda à origem da janela.
Eu tive o mesmo problema e foi porque eu tinha a extensão do Chrome “HTTPS Everywhere” em execução. Desativar a extensão resolveu meu problema.
Esse erro exato estava relacionado a um bloco de conteúdo do YouTube quando “reproduzido em determinados sites ou aplicativos”. Mais especificamente pelo WMG (Warner Music Group).
No entanto, a mensagem de erro sugeriu que uma importação de iframe https para um site http era o problema, o que não era nesse caso.
Eu tenho o mesmo erro. Meu erro foi que o parâmetro enablejsapi=1
não estava presente no iframe
src.
A remoção da pré-busca de DNS resolverá esse problema.
Se você estiver usando o WordPress, adicione esta linha nas funções do seu tema.php
remove_action( 'wp_head', 'wp_resource_hints', 2 );