2013-04-14 25 views
0

從Fancybox 1.3.4升級到Fancybox 2.1.4後,我無法獲得正確的href屬性以使用我的youtube視頻。修改href屬性(在此JSFiddle中)與Fancybox中的youtube視頻一起使用

請看看這個工作jsfiddle,我想修改。

簡而言之,我想要做的就是從每個鏈接的URL中刪除尾部&autoplay=1,並將其添加到腳本中的href屬性中。當我嘗試這樣做時,fancybox會打開,但youtube視頻不播放並報告一般錯誤。

有人可以幫我修改這個代碼到一個工作版本嗎?

下面是HTML:

<a href="http://www.youtube.com/watch?v=opj24KnzrWo&amp;autoplay=1">open youtube video</a> 

<br /> 

<a href="http://www.youtube.com/watch?v=071KqJu7WVo&amp;autoplay=1">open youtube video 2</a> 

和JavaScript:

(function ($) { 
    $(document).ready(function(){ 
    $('a[href*=youtube]').each(function() { 
     // convert youtube swf href to embed for iframe 
     var thisHref = this.href.replace(new RegExp("watch\\?v=", "i"), 'embed/').replace(new RegExp("&", "i"), '?'); 
     // bind fancybox to each anchor 
     $(this).fancybox({ 
     "padding": 0, 
     "type": 'iframe', 
     // add trailing parameters to href (wmode) 
     "href" : thisHref+"&amp;wmode=opaque" 
     }); // fancybox 
    }); // each 
    }); // ready 
})(jQuery);` 

感謝。

+0

所有你想做的事就是替換尾隨的「autoplay = 1」?只需將它添加到替換行的末尾:'.replace(「autoplay = 1」,「」)' - 我認爲是這樣:http://jsfiddle.net/yZWv3/1/ – Ian

+0

順便說一下,你的小提琴對我來說工作的很好,但它自動播放 – Ian

+0

不。在我的情況下,我有大約8000個youtube拖車,它們的html源代碼中沒有跟蹤& autoplay = 1。我想要做的是有一個工作示例,它在html中自動播放而不使用& autoplay = 1,而是在javascript中。謝謝。 @Ian – user2105885

回答

0

對於這種類型的鏈接沒有任何尾隨參數:

<a href="http://www.youtube.com/watch?v=opj24KnzrWo">open youtube video</a> 
<a href="http://www.youtube.com/watch?v=071KqJu7WVo">open youtube video 2</a> 

使用此代碼

(function ($) { 
    $(document).ready(function(){ 
    $('a[href*=youtube]').each(function() { 
     // convert youtube swf href to embed for iframe 
     var thisHref = this.href.replace(new RegExp("watch\\?v=", "i"), 'embed/'); 
     // bind fancybox to each anchor 
     $(this).fancybox({ 
      "padding": 0, 
      "type": 'iframe', 
      // add trailing parameters to href (wmode) AND autoplay  
      "href" : thisHref+"?wmode=opaque&amp;autoplay=1" 
     }); // fancybox 
    }); // each 
    }); // ready 
})(jQuery); 

你有沒有和前面的例子中的問題是,wmode=opaque是你第二參數所以它需要先行&amp;

"href" : thisHref+"&amp;wmode=opaque" 

但因爲你將要從鏈接所有尾隨參數,然後wmode=opaque成爲第一參數所以它需要一個前?代替

"href" : thisHref+"?wmode=opaque&amp;autoplay=1" 

見新JSFIDDLE

相關問題