ОБНОВЛЕНИЕ: динамически заменить атрибут src тега embed в JavaScript - PullRequest
0 голосов
/ 22 ноября 2010

Когда я пытаюсь изменить атрибут src встроенного фильма (quicktime), он странным образом работает локально в Firefox, но не работает на сервере в Firefox, не работает в Safari ни локально, ни на сервере и не работает. не работает в IE.

Я пробую то, что было предложено ниже:

    $(".image_thumb ul li ul li").click(function(){     
var imgTitle = $(this).find('a').attr("href");  
var imgDesc = $(this).find('.block').html(); 
var imgDescHeight = $(".main_image").find('.block').height();   

if ($(this).is(".active")) {  
    return false; 
} else {
    alert(imgTitle);
    var videoClone = $(".main_image object").clone()
       .find("embed").attr({src: imgTitle}).end()  
       .find("param:first").attr({value: imgTitle});
    $(".main_image object").remove();
    $(".main_image").append(videoClone);

    $(".main_image .block").animate({ opacity: 0, marginBottom: -imgDescHeight }, 250 , function() {
        $(".main_image .block").html(imgDesc).animate({ opacity: 0.85,  marginBottom: "0" }, 250 );

    });
}
//more code

Фильм вообще не появляется. Все загружается, кроме фильма. Кто-нибудь знает почему? Конечно, я не могу быть единственным, кто использует что-то кроме вспышки для загрузки фильмов.

HTML (если полезно):

<div id="vid_wrapper">
    <div class="main_image">
        <object width="160" height="144"
        classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
        codebase="http://www.apple.com/qtactivex/qtplugin.cab">
        <param name="src" value="../images/Intro-1.mov">
        <param name="autoplay" value="true">
        <param name="controller" value="false">




        <EMBED SRC="../images/Intro-1.mov" WIDTH=500 HEIGHT=380 AUTOPLAY=true CONTROLLER=true LOOP=false PLUGINSPAGE="http://www.apple.com/quicktime/"> <!--    <img src="" alt="video_1"> -->
        </object>


        <div style="display: block;" class="desc">
            <a href="#" class="collapse">Close Me!</a>
            <div style="opacity: 0.85; margin-bottom: 0px; display: block;" class="block">
                    <h2>Video 1</h2>
                    <p>Autem conventio nimis quis ad, nisl secundum sed, facilisi, vicis augue regula, ratis, autem. Neo nostrud letatio aliquam validus eum quadrum, volutpat et.</p>
                </div>
        </div>
    </div>

    <div class="demo lists image_thumb">
            <ul>
              <li class="expand">Admin System
                <ul class="collapse">
                  <li class="active"> 

            <a href="../images/Intro-1.mov">
                <img src="../images/banner1_thumb.jpg" alt="video_1">
            </a>
            <div class="block">
                <h2>Video 1</h2>
                <p>Autem conventio nimis quis ad, nisl secundum sed, facilisi, vicis augue regula, ratis, autem. Neo nostrud letatio aliquam validus eum quadrum, volutpat et.</p>
            </div>
        </li>    
                  <li>
            <a href="../images/Intro-2.mov">
                <img src="../images/banner1_thumb.jpg" alt="video_2">
            </a>
            <div class="block">
                <h2>Video 2</h2>
                <p>Autem conventio nimis quis ad, nisl secundum sed, facilisi, vicis augue regula, ratis, autem. Neo nostrud letatio aliquam validus eum quadrum, volutpat et.</p>
            </div>
        </li>
                </ul>

              </li>
              <li class="expand">Enrollment System
                <ul class="collapse">
                  <li>
            <a href="../images/Intro-1.mov">
                <img src="../images/banner1_thumb.jpg" alt="video_3">
            </a>
            <div class="block">
                <h2>Video 3</h2>
                <p>Autem conventio nimis quis ad, nisl secundum sed, facilisi, vicis augue regula, ratis, autem. Neo nostrud letatio aliquam validus eum quadrum, volutpat et.</p>
            </div>
        </li>    

                  <li>
            <a href="video4.jpg">
                <img src="../images/banner1_thumb.jpg" alt="video_4">
            </a>
            <div class="block">
                <h2>Video 4</h2>
                <p>Autem conventio nimis quis ad, nisl secundum sed, facilisi, vicis augue regula, ratis, autem. Neo nostrud letatio aliquam validus eum quadrum, volutpat et.</p>
            </div>
        </li>
                </ul>
              </li>
              <li class="expand">Inventory System
                <ul class="collapse">

                  <li>
            <a href="video5.jpg">
                <img src="../images/banner1_thumb.jpg" alt="video_5">
            </a>
            <div class="block">
                <h2>Video 5</h2>
                <p>Autem conventio nimis quis ad, nisl secundum sed, facilisi, vicis augue regula, ratis, autem. Neo nostrud letatio aliquam validus eum quadrum, volutpat et.</p>
            </div>
        </li>

                  <li> 
            <a href="video6.jpg">
                <img src="../images/banner1_thumb.jpg" alt="video_6">
            </a>
            <div class="block">
                <h2>Video 6</h2>
                <p>Autem conventio nimis quis ad, nisl secundum sed, facilisi, vicis augue regula, ratis, autem. Neo nostrud letatio aliquam validus eum quadrum, volutpat et.</p>
            </div>
        </li>

                </ul>
              </li>
            </ul>    
        </div>
</div>  

Спасибо за любой ответ.

Ответы [ 2 ]

0 голосов
/ 07 августа 2012

попробуйте установить параметр wmode = "transparent", а затем выполните функцию z-index.

0 голосов
/ 22 ноября 2010

Я не работал со встроенными объектами, но я предполагаю, что браузер не отвечает на изменения атрибута src после его загрузки.

Не знаю, сработает ли это, но попробуйте клонировать объект, удалить существующий, изменить атрибуты клонированного объекта и добавить его обратно в документ.

Примерно так:

var videoClone = $(".main_image object").clone()
   .find("embed").attr({src: imgTitle}).end()  
   .find("param:first").attr({value: imgTitle});
$(".main_image object").remove();
$(".main_image").append(videoClone);
...