[javascript] ‘DOMWindow’에서 ‘postMessage’를 실행하지 못했습니다 : https://www.youtube.com! == http : // localhost : 9000

이것은 내가 얻는 오류 메시지입니다.

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').

대상 원점 http://www.youtube.com과 수신자 원점이 다른 유사한 문제를 보았지만 대상이 있고 원점이 https://www.youtube.com어디 https://www.youtube.com인지는 없습니다 http://localhost:9000.

  1. 문제가 없습니다. 무엇이 문제입니까?
  2. 어떻게 고칠 수 있습니까?


답변

나는 이것이 목표 원점 인 문제라고 생각합니다 https. iFrame URL http대신을 사용하고 있기 때문 입니다 https. 포함시키려는 파일의 URL을로 변경하십시오 https.

예를 들어 :

'//www.youtube.com/embed/' + id + '?showinfo=0&enablejsapi=1&origin=http://localhost:9000';

되려고:

'https://www.youtube.com/embed/' + id + '?showinfo=0&enablejsapi=1&origin=http://localhost:9000';


답변

다음 과 같이 플레이어 속성에 "origin"사이트의 URL과 매개 변수 를 추가하십시오 paramVars.

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' },
}


답변

이것을 설정하면 해결되는 것 같습니다.

  this$1.player = new YouTube.Player(this$1.elementId, {
    videoId: videoId,
    host: 'https://www.youtube.com',


답변

JavaScript를 로컬 파일로 저장할 수 있습니다 :

첫 번째 파일 player_api에 다음 코드를 입력하십시오.

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<o.length;n++)try{o[n]()}catch(i){}},YT.setConfig=function(o){for(var n in o)o.hasOwnProperty(n)&&(YTConfig[n]=o[n])}}());

두 번째 파일에서 코드를 찾으십시오. this.a.contentWindow.postMessage(a,b[c]);

그것을 다음으로 대체하십시오 :

if(this._skiped){
    this.a.contentWindow.postMessage(a,b[c]);
}
this._skiped = true;

물론 하나의 파일로 연결할 수 있습니다-더 효율적입니다. 이것은 완벽한 솔루션은 아니지만 작동합니다!

내 출처 : yt_api-concat


답변

다음과 같은 URL에서로드 중인지 확인하십시오.

https://www.youtube.com/embed/HIbAz29L-FA?modestbranding=1&playsinline=0&showinfo=0&enablejsapi=1&origin=https%3A%2F%2Fintercoin.org&widgetid=1

“origin”구성 요소 및 “enablejsapi = 1″에 유의하십시오. 원본은 도메인과 일치해야하며 허용 목록에 표시되어 작동합니다.


답변

window.location.href창의 원점과 일치하도록 URL을 사용해보십시오 .


답변

같은 오류가 발생했습니다. 내 실수는 enablejsapi=1매개 변수가 iframesrc 에 없다는 것 입니다.