2015-01-03 34 views
1

我有一個小腳本,我使用YoutubeAPI,現在我無法讓它工作,只要我發送id產生replace函數。我得到的視頻ID正確的我的視頻功能,但不知何故,它不適合我。我只想用視頻替換網址,我想保留'你好,這是一個帖子'。jQuery替換網址到視頻

我有http://jsfiddle.net/pb6e7ynh/

<script src="https://www.youtube.com/iframe_api"></script> 
<span id=msg> 
    Hello this is a post 
    https://www.youtube.com/watch?v=eLaNBbKJPfw 
</span> 

jQuery(function($){ 
    $('#msg').html(function(i, html) { 
     function video(id){ 
      var player; 
      console.log(id); 
      player = new YT.Player('msg', { 
       height: '174', 
       width: '309', 
       videoId: id, // videoId: 'eLaNBbKJPfw' 
       playerVars: { 
        enablejsapi: 1, 
        //controls: 0, 
        disablekb: 1, 
        fs: 0, 
        iv_load_policy: 3, 
        modestbranding: 1, 
        rel: 0, 
        showinfo: 0 
       } 
      });   
     } 
     test = html.replace(/(?:http|https:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=)?(.+)/g, '$1'); 
     video(test); 

    }); 
}); 

回答

0

腳本,您應該使用其他元素創建YouTube播放器(見Fiddle),因爲該API將與iframe

HTML更換

<script src="https://www.youtube.com/iframe_api"></script> 
<span id="msg"> 
    Hello this is a post 
</span> 
<br> 
<span id="youtube"> 
    https://www.youtube.com/watch?v=eLaNBbKJPfw 
</span> 

JS

function video(id){ 
    var player; 
    console.log(id); 
    player = new YT.Player('youtube', { 
     height: '174', 
     width: '309', 
     videoId: id, // videoId: 'eLaNBbKJPfw' 
     playerVars: { 
      enablejsapi: 1, 
      //controls: 0, 
      disablekb: 1, 
      fs: 0, 
      iv_load_policy: 3, 
      modestbranding: 1, 
      rel: 0, 
      showinfo: 0 
     } 
    });   
} 

$(function(){ 
    var html, youtubeID; 
    html = $("#youtube").html(); 
    youtubeID = html.split("=")[1]; 
    video(youtubeID); 
}); 

有點更先進:Fiddle

+0

我檢查你的代碼,但網址和郵件像Facebook上的同一個地方要去。它可以將'youtubeID'的權限發送到API,所以它不會播放它,你可以檢查爲什麼'youtubeID'確實發送正確' – Inna

+0

http://jsfiddle.net/pb6e7ynh/11/:只要我把在post元素中的youtube元素它不工作,我不知道爲什麼現在... – sodawillow

+0

確定這裏是一個工作之一:http://jsfiddle.net/pb6e7ynh/12/ /!\爲一些奇怪的原因,如果你縮進HTML代碼,它不再工作,我可能錯過了某些明顯的或它是jsfiddle上的錯誤 - 並且不能使YT API在codepen上工作,所以我不能在這裏做更多:) – sodawillow