1

次のスクリプトを使用して、要素を埋め込むために wmode="opaque" を追加しています。

jQuery("iframe[src], embed[src]").each(function () {
    jQuery(this).prop("src", jQuery(this).prop("src") + "?wmode=opaque");
});

正常に動作しますが、次のように埋め込み src の最後に wmode を追加します。

http://www.youtube.com/embed/example?fs=1&feature=oembed?wmode=opaque

そして、それはそれを機能させません。より正確にしたいので、埋め込みリンクの後に最初の属性として wmode を追加するので、たとえば埋め込み URL をどのように過ぎても:

http://www.youtube.com/embed/example?fs=1&feature=oembed

スクリプトは次のようになります。

http://www.youtube.com/embed/example?wmode=opaque?fs=1&feature=oembed

助けはありますか?

4

1 に答える 1

1

両方の薄さを補う必要があると思います。

http://www.youtube.com/embed/example?wmode=opaque?fs=1&feature=oembed

も間違っています。最初のパラメーターのみに?

だから、あなたは試すことができます:

jQuery("iframe[src], embed[src]").each(function () {
    var url = jQuery(this).prop("src");
    if(url.search(/\?/) === -1) {
            jQuery(this).prop("src", url + "?wmode=opaque");
    } else {
            jQuery(this).prop("src", url + "&wmode=opaque");
    }
});

コードを小さくしたい場合は、if ステートメントを次のように置き換えることができます。

 jQuery(this).prop("src", url + ((url.search(/\?/) === -1) ? url + "?wmode=opaque" : "&wmode=opaque"));

また、クエリ文字列パラメーターをご覧になることをお勧めします(ここに残したリンク、またはGoogleで検索してください)

編集

最初にそれが必要な理由がわかりません。また、クエリ パラメーターがどのように機能するかを理解していないだけだと確信しています。しかし、ここにコードがあります:

jQuery("iframe[src], embed[src]").each(function () {
    var url = jQuery(this).prop("src");
        if(url.search(/\?/) === -1) {
            jQuery(this).prop("src", url + "?wmode=opaque");
        } else {
            var splittedUrl = url.split("?");
            jQuery(this).prop("src", splittedUrl[0] + "?wmodeopaque&" + splittedUrl[1]);
        }
});
于 2012-11-02T14:25:28.973 に答える