2013-07-26 56 views
24

Khi nhúng danh sách phát Youtube, tôi gặp phải lỗi này:Youtube "Chặn khung có nguồn gốc" http://www.youtube.com "truy cập vào khung có nguồn gốc" ngay cả khi cùng một giao thức được sử dụng

Blocked a frame with origin "http://www.youtube.com" from accessing a frame with origin "http://www.mydomain.com". Protocols, domains, and ports must match.

Tôi không trộn HTTP với HTTPS ở bất kỳ đâu, vì vậy tôi không biết tại sao tôi gặp lỗi này ngay từ đầu.

Tôi nhận thấy rằng gần đây danh sách phát được nhúng trên YouTube không hiển thị hình ảnh được nhúng của video đầu tiên và chỉ hiển thị màn hình màu đen có nút 'Phát tất cả' và tôi tự hỏi điều này có phải do lỗi trên không .

+1

Đây là crom vấn đề ... https://code.google.com/p/chromium/issues/detail?id=17325 nó về cơ bản là một lỗi trong V8 mà cần phải được cố định để Chromium có thể sử dụng lừa dối xử lý để đối phó với điều này. Nó không liên quan đến bất cứ điều gì bạn có thể nhìn thấy với danh sách nhạc nhúng (và, trên thực tế, không nên thực sự có bất kỳ tác động tiêu cực). – jlmcdonald

+1

Tôi đã thay đổi để sử dụng API javascript thay thế. Dường như vấn đề mà tôi gặp phải là một số vấn đề được giới thiệu với các bản cập nhật mới nhất cho YouTube, điều này đã ảnh hưởng đến việc nhúng iframe. Điều này dường như không liên quan. Kiểm tra câu hỏi khác của tôi ở đây: http://stackoverflow.com/questions/17832807/youtube-embedded-playlist-diplays-playall-button-instead-of-the-first-video – jbx

+0

bạn có thể thêm tập lệnh gọi tới youtube không? – scalopus

Trả lời

5

Dường như có lỗi do chrome đưa ra là lỗi. Để giải quyết các màn hình màu đen với 'Chơi Tất cả' nút vấn đề tôi đã sử dụng các API Javascript (thay cho iframe), như thế này:

<!DOCTYPE html> 
<html> 
    <body> 
    <div id="player"></div> 
    <script> 
     var tag = document.createElement('script'); 
     tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
     var player; 
     function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', { 
      height: '390', 
      width: '640', 
      videoId: '', 
      events: { 
      'onReady': onPlayerReady 
      } 
     }); 
     } 
     function onPlayerReady(event) { 
     player.cuePlaylist({'listType':'playlist','list':'PLE2714DC8F2BA092D'}); 
     } 
    </script> 
    </body> 
</html> 

Nhờ @jlmcdonald cho câu trả lời, như được chỉ ra ở đây: Youtube embedded playlist diplays playall button instead of the first video

-1

vấn đề này khá rõ ràng đối với dịch vụ Youtube, về cơ bản Youtube chỉ có thể truy cập qua https, http không được phép, chỉ cần thay đổi 'http' thành "https" ... đó là giải pháp