다음 코드로 내 사이트의 YouTube 클립에 iframe_api를 구현했습니다.youtube.com/iframe_api는 IE11 또는 Windows 10의 가장자리에서 실행되지 않습니다.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Setup Youtube player
var player;
// Get id of first clip
var ytVideoId = jQuery('.start-yt').attr('data-video-id');
// When API is ready, create player with above id
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: ytVideoId,
events: {
'onReady': onPlayerReady
}
});
console.log('API Ready');
}
// When player is ready
function onPlayerReady(event) {
jQuery('.start-yt').addClass('play-icon');
// Set glob var
var ytGlobId ="";
// Close button
jQuery('.ytClose').click(function(){
jQuery('.youtube-player-container').removeClass('active');
player.pauseVideo();
});
jQuery('.youtube-player-container').click(function(){
jQuery('.youtube-player-container').removeClass('active');
player.pauseVideo();
});
// load or play clip
jQuery('.start-yt').click(function(){
jQuery('.youtube-player-container').addClass('active');
if (ytGlobId == jQuery(this).attr('data-video-id')) {
player.playVideo();
} else {
ytGlobId = jQuery(this).attr('data-video-id');
player.loadVideoById(ytGlobId);
}
});
console.log('Player Ready');
}
이 은 작동합니다. 그러나 친구에게는 Windows 10과 IE11 + Edge가 있습니다. 그리고 'onReady': onPlayerReady
이 거기에서 발생하지 않는 것 같습니다. console.log
은 API Ready
이라고 기입하고 확인시 Player Ready
을 기입하지 마십시오. 콘솔에 아무런 오류가 없으며 단지 작동하지 않고 작동합니다. Browserstack에서 동일한 조합 (Windows 10 + IE11/Edge)을 확인했는데 작동하는 것처럼 보입니다.
Google에서 답변을 검색했으며 일부 사용자에게 비슷한 문제가있는 것 같지만 해결 방법을 찾을 수있는 예제를 찾지 못했습니다.
감사 @abielita을 :
가 여기에도 도움이 될 다른 스레드입니다. 그것을 시도했지만 작동하지 않았다. – JoakimB
내가해야 할 일은 console.log 메시지만으로 그 eventlistner를 불러 모으는 것 뿐이야? 'DOMWindow'에 'postMessage'를 실행하지 못했습니다. 제공된 대상 출처 ('https://www.youtube.com')가받는 사람 창 ('https : //www.youtube.com')과 일치하지 않습니다. /dev3.axiell.com ').',하지만 플레이어가 작동 중입니다. Edge/IE11에서는 여전히 차이가 없지만 여전히 실패합니다. eventlistner에 내 기능을 추가하려고했지만 모든 브라우저에서 플레이어가 다운되었습니다. – JoakimB
같은 일에 대해 많은 의견이 나누어 져서 미안합니다. 보시다시피 문제는 onReady() 함수가 전혀 호출되지 않는다는 것입니다. 그래서 eventlistner를 넣으면 아무런 변화가 없습니다. 왜냐하면'onReady()'는 Win10 + Edge/IE11에서 전혀 작동하지 않기 때문입니다. – JoakimB