YouTube API, jQuery attr eleman özelliklerini takas olmaz

1 Cevap php

JavaScript (jQuery)

function display_youtube(new_url) {
    $('#movie_url').removeAttr('value');
    $('#embed_url').removeAttr('src');
    $(document).ready(function() {
        $('#movie_url').attr('value', new_url);
        $('#embed_url').attr('src', new_url);
        $('#shade').css('display', 'block');
        $('#youtube_player').css('display', 'block');
        $('#exit_youtube').css('display', 'block');
    });
}

HTML

<object width="720" height="480">
<param id="movie_url" name="movie" value="http://www.youtube.com/v/_eaToCSn7yU?f=user_uploads&app=youtube_gdata&autoplay=0" />
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<embed id="embed_url" src="http://www.youtube.com/v/_eaToCSn7yU?f=user_uploads&app=youtube_gdata&autoplay=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="720" height="480" />
</object>

Köprü

<a href="javascript:display_youtube('http://www.youtube.com/v/_eaToCSn7yU?f=user_uploads&app=youtube_gdata&autoplay=1');">Click Here for Fun!</a>

Ne yaptık, benim kullanıcı kanalda videolar için YouTube'un API ayrıştırılır.

Yukarıdaki köprü JavaScript işlevi yukarıda tetikleyebilir, ve sadece FF gerektiği gibi çalışır kimlikleri "movie_url" ve "embed_url" içerdiği nitelikleri gelen url takas içindir, oluşturulan php, ancak IE sadece. Css komutları gerçekleştirmek olacaktır.

Benim tahminim IE beni PARAM ve embed kimlikleri atama gibi olmamasıdır.

1 Cevap

Sabit! Benim yeni kod aşağıda listelenmiştir. Sorun Flash parametrelerin IE işleme (nesne için params bir zaman uyumsuz bir yenileme yapmak olmaz) idi. Bu video gömme ve bir nesne olarak ele değildi çünkü FF iyi çalışıyordu.

Yeni Javascript

function display_youtube(new_url) {
    $('#object_url').replaceWith('<param id="object_url" name="movie" value="' +new_url+ '" />');
    $('#embed_url').replaceWith('<embed id="embed_url" src="' +new_url+ '" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="720" height="480" />');
    $('#shade').css('display', 'block');
    $('#youtube_player').css('display', 'block');
    $('#exit_youtube').css('display', 'block');
}
function exit_youtube() {
    $('#object_url').replaceWith('<param id="object_url" />');
    $('#embed_url').replaceWith('<embed id="embed_url" />');
    $('#shade').css('display', 'none');
    $('#youtube_player').css('display', 'none');
    $('#exit_youtube').css('display', 'none');
}

Yeni HTML

<object width="720" height="480">
    <param id="object_url" />
    <param name="allowFullScreen" value="true" />
    <param name="allowscriptaccess" value="always" />
    <embed id="embed_url" />
</object>

Burada püf baştan herhangi bir parametre önbelleğe IE önlemede etkisi, nesne üzerinde herhangi bir işlem gerçekleştirebilir önce jQuery gelen talimat üzerine güvenmek IE zorlamak olduğunu düşünüyorum. FTW!