2009-12-29 57 views
6

Tôi đã gặp sự cố khi cố gắng tìm ra điều này. Những gì tôi đang cố gắng làm là lấy ID của video từ YouTube và nhập ID 11 ký tự vào css của div của một id cụ thể bằng cách sử dụng jQuery. Tôi biết URL cho hình thu nhỏ của bất kỳ video nào nhưng tôi chỉ cần có thể thay đổi ID để hiển thị hình thu nhỏ video khác nhau.Lấy ID video YouTube trong URL và nhập ID video đã chọn vào URL

<script> 
    $(document).ready(function() { 
     function(data) { 
      videoID = data.split('www.youtube.com/v/')[1].split('&amp')[0]; 
      $("#304817679").append(videoID); 
     }); 

     $("#304817679").replaceWith("<div id=\"304817679\" " + 
      "style=\"background: url(http://img.youtube.com/vi/" + 
      $.function(data) + 
      "/0.jpg) no-repeat middle; width: 15px; height: 150px;\"></div>"); 
    }); 
</script> 

<div id="304817679"> 
    <div style="display: none;"> 
     <object width="248" height="222"> 
      <param name="movie" value="http://www.youtube.com/v/vy90n2nNRKQ&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"></param> 
      <param name="wmode" value="transparent"></param> 
      <param name="allowFullScreen" value="true"></param> 
      <embed src="http://www.youtube.com/v/vy90n2nNRKQ&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="248" height="222" allowFullScreen="true" wmode="transparent"></embed> 
     </object> 
    </div> 
</div> 

Đang cố gắng để giải thích điều này tốt hơn, tôi muốn 11 nhân vật YouTube Video ID từ mã nhúng, và đặt nó vào URL của hình thu nhỏ (http://img.youtube.com/vi/" + function(data) + "/0.jpg"). Trong đó, sau đó sẽ thay thế div (<div id="304817679"> gốc).

Tôi có đang đi đúng hướng với tập lệnh của tôi không?

Trả lời

0

OK, vậy điều bạn thực sự muốn là cách tìm và thay thế văn bản, có vẻ như vậy. Hãy xem Find & replace jquery

Hoặc bạn đang gặp sự cố ngay cả khi nhận và thiết lập thuộc tính?

+0

Không, tôi không nghĩ đó là những gì tôi muốn. ID video của video được hiển thị: "http://img.youtube.com/vi/THIS LÀ ID IS/0.jpg" ở đâu. Tôi muốn thay thế 'ID NÀY LÀ ID LÀ' với ID video có trong mã nhúng: param name = "movie" value = "http://www.youtube.com/v/HERE LÀ ID & rel = 0 & Mặc dù nó thay thế toàn bộ div (

Contents
) và nội dung của nó bằng một div khác sẽ có hình nền được đặt là "http://img.youtube.com/vi/THIS LÀ ID LÀ/0.jpg " – Dave

+0

Vì vậy, đó là vấn đề của việc tìm kiếm regex để phù hợp với văn bản giữa 2 dấu gạch chéo. Hãy cho chúng tôi biết cách bạn tiến bộ về điều này :) – Eduardo

1

Tôi không hoàn toàn chắc chắn bạn đang cố gắng làm gì, nhưng chức năng không thể được gọi (sau đó) nếu nó không có tên. Cũng không có dữ liệu biến nào được xác định.

$(document).ready(function() { 

    //lets give this function a name 
    function getID(data) { 
     //videoID is parsed nicely 
     videoID = data.split('www.youtube.com/v/')[1].split('&amp')[0]; 

     //this doesn't actually do anything useful since it is replaced afterwards 
     $("#304817679").append(videoID); 

     //to get a value out of function we need to return it 
     return videoID; 
    }; 

    //background style wasn't defined correctly 
    //changed to background-image and background-repeat 
    //lets also supply getID function HTML as data 
    $("#304817679").replaceWith("<div id=\"304817679\" " + 
     "style=\"background-image: url(http://img.youtube.com/vi/" + 
     getID($("#304817679").html()) + 
     "/0.jpg); background-repeat: no-repeat; width: 15px; height: 150px;\"></div>"); 
}); 

Demo

0

những gì sẽ xảy ra nếu url vào video YouTube là: http://www.youtube.com/user/sothebysrealty?feature=watch

không có 'id' trong những loại url. Nếu chủ sở hữu đã sử dụng bitly hoặc tương tự, bạn có thể đảo ngược các url trực tuyến nhưng vẫn còn, một được một cái gì đó như ở trên.

Tôi chưa thể tìm ra cách để người chơi vid sử dụng url đó qua api của YouTube.

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