7

Sử dụng API JavaScript/iFrame của YouTube Tôi đang cố gắng tìm thời gian khác nhau của video trong số những thứ khác.Cách giải quyết lỗi 'Không thực thi' postMessage 'trên' DOMWindow '' từ một tệp nhúng của YouTube

Tôi đã lột xuống một bản demo này: http://jsbin.com/yuliponu

var player; 
window.onYouTubeIframeAPIReady = function() { 
    var iframe = document.createElement("iframe"); 
    iframe.width = 400; 
    iframe.height = 300; 
    iframe.id = "youtubeIframe"; 
    iframe.src = "https://www.youtube.com/embed/yta1WRuiupk?autoplay=1&enablejsapi=1&origin="+encodeURIComponent(window.location.protocol+"//"+document.domain)+"&playsinline=1&rel=0"; 
    iframe.setAttribute('frameborder', '0'); 
    iframe.setAttribute('allowFullScreen', ''); 
    document.getElementById("video").appendChild(iframe); 

    player = new YT.Player('youtubeIframe'); 
}; 

var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

Nếu bạn có một cái nhìn trong giao diện điều khiển, bạn sẽ thấy lỗi này:

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided 
('https://www.youtube.com') does not match the recipient window's origin 
('http://jsbin.com'). 

Tôi cần này để giải quyết để bắt đầu sử dụng API JavaScript, nhưng tôi không chắc chắn cách khắc phục nó.

UPDATE:

Tôi đã kể từ khi khởi động lại máy tính của tôi, và lỗi không xảy ra. Tôi sẽ cập nhật nếu tôi gặp lại lỗi.

Trả lời

1

Vấn đề là bạn đang thử nghiệm trên trang web được chuyển bằng HTTP thuần túy nhưng bạn đã yêu cầu API của YouTube trong phiên bản SSL. Tôi nghĩ rằng Google đã cố định này trong API JS Youtube IFrame của họ, nhưng nó sẽ là thanh lịch nhất để sử dụng:

tag.src = "//www.youtube.com/iframe_api";

thay vì

tag.src = "https://www.youtube.com/iframe_api";

Tự động chọn giao thức tương tự như cha mẹ.

Các vấn đề liên quan