2011-02-09 41 views
7

Sử dụng Fancybox đến play youtube videos in a modal box.Fancybox quay lại "Không thể tải nội dung được yêu cầu. Vui lòng thử lại sau."

Vấn đề của tôi là tôi tiếp tục nhận được "Không thể tải nội dung được yêu cầu. Vui lòng thử lại sau".

Hộp modal được nảy lên vì vậy tôi biết kịch bản đang chạy, nó có thể là một vấn đề với cuộc gọi API của tôi ... đây là cuộc gọi của tôi:

<script type="text/javascript"> 
$(document).ready(function() { 

      /* This is basic - uses default settings */ 

      $("a.fancybox").fancybox({ 
       'hideOnContentClick': true 
      }); 

      /* This is a non-obtrustive method for youtube videos*/ 

      $("a[rel=fancyvideo]").fancybox({ 
       overlayShow: true, 
       frameWidth:640, 
       frameHeight:360, 
      }); 
     }); 
</script> 

Trả lời

7

bạn có bất cứ <a> s với cả class="fancybox"rel="fancyvideo"? Nếu bạn làm vậy thì bạn sẽ gắn kết Fancybox với những yếu tố đó hai lần và Fancybox có thể không thích điều đó. Hãy thử lấy ra cái này:

$("a.fancybox").fancybox({ 
    'hideOnContentClick': true 
}); 

Và xem điều gì xảy ra chỉ với cái thứ hai.

CẬP NHẬT: Lạ. Bản demo (http://chadly.net/demos/video-lightbox.html) đang tạo ra HTML khác với trang của bạn, bản trình diễn xây dựng một số <object data=...> nhưng bạn xây dựng một điều <object><embed src="youtube-url">. Bạn đang nói:

type: 'swf' 

trong liên kết Fancybox của bạn, đó là nơi các công cụ <object><embed>...</embed></object> xuất phát từ đó. Tuy nhiên, số href chỉ ở trang HTML xem video cũ của YouTube và rằng href kết thúc dưới dạng thuộc tính src cho số <embed>. URL để nhúng video trên YouTube không giống với trang HTML của video và đó có thể là nguồn gốc của sự cố của bạn.

Hãy thử thay thế href trông như thế này:

http://www.youtube.com/watch?v=QmVvgSfdmJQ 

với một như thế này:

http://www.youtube.com/embed/QmVvgSfdmJQ 

Đầu tiên là trang HTML đơn giản cho YouTube, thứ hai là SWF nhúng.

CẬP NHẬT 2: Ví dụ bạn đang làm việc là cho Fancybox 1.0.0 nhưng bạn đang sử dụng 1.3.4, 1.0.0 có một số kiểm tra đặc biệt cho YouTube không có trong các phiên bản sau:

//... 
} else if (url.match(/youtube\.com\/watch/i)) { 
//... 

đó là từ 1.0.0 và mã sau else if mà viết lại URL trang HTML (ví dụ http://www.youtube.com/watch?v=QmVvgSfdmJQ) vào URL nhúng SWF cũ (ví dụ http://www.youtube.com/v/QmVvgSfdmJQ). Vấn đề phiên bản này cũng giải thích lý do tại sao bản demo đã sản xuất HTML khác với của bạn.

Vì vậy, bạn có một số vấn đề về phiên bản trên mọi thứ khác.

+0

Cuộc gọi tốt, thật không may, tôi đã thử điều đó. Không có con xúc xắc. Tôi không sử dụng cùng một lớp trên video liên quan đến youtube. Cũng loại bỏ các cuộc gọi Fancybox đầu tiên và nó không thay đổi bất cứ điều gì. Bạn có thể xem trang web tại đây: http://anasmadance.com.s66112.gridserver.com/about/repertoire/ ... nhấp vào div tiêu đề lớn đầu tiên để mở rộng và sau đó tìm "xem video" – Brian

+0

@Brian : Tôi nhét xung quanh một chút và thêm một bản cập nhật có thể (hoặc có thể không) được sử dụng. –

+0

Bạn đã đúng ... bạn đã cứu tôi! : D – Brian

1

Hình như mã của bạn có thể là hơi off

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("a[@rel*=fancyvideo]").fancybox({ 
      overlayShow: true, 
      frameWidth:640, 
      frameHeight:360 
     }); 
    }); 
</script> 

http://chadly.net/post/2009/01/29/Lightbox-for-YouTube-Videos.aspx

+0

Đáng tiếc là không có, tác giả đăng tải điều này trước khi jQuery 1.3 .2 và vì vậy mã trong bài đăng của anh ấy sai. Trước khi cập nhật, mã không hoạt động chút nào, sau đó tôi nhận được hộp phương thức xuất hiện nhưng không có video. – Brian

1

sử dụng mẫu này đừng quên href

<a class="fancybox" href="your path for image or other"> 
    <img src="imagepath"> 
</a> 
2

Kiểm tra xem bạn đã bao gồm jquery.fancybox-media.js

<script type="text/javascript" src="jquery.fancybox-media.js?v=1.0.0"></script> 
Các vấn đề liên quan