0

Fancybox 1.3.4 から Fancybox 2.1.4 にアップグレードして以来href、YouTube ビデオで動作する正しいプロパティを取得できませんでした。

私が変更しようとしているこの動作中のjsfiddleを見てください。

簡単に&autoplay=1言えば、各リンクの URL から末尾を削除し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);`

ありがとう。

4

1 に答える 1

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=opaque2 番目のパラメーターであったため、前のパラメーターが必要だったことです。&amp;

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

ただし、リンクからすべての後続パラメーターを削除しているためwmode=opaque最初の?パラメーターになるため、代わりに先行が必要です

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

新しいJSFIDDLEを見る

于 2013-04-14T07:07:42.070 に答える