2011-07-14 88 views
3

我在使用JQuery AnythingSlider插件顯示一些視頻時,在Internet Explorer中出現了一個非常奇怪的問題。每當有人滑到下一個視頻,我有一個閃光燈回電:IE SCRIPT16389 Flash ExternalInterface回調和JQuery滑塊錯誤

import flash.external.ExternalInterface; 
ExternalInterface.addCallback("movie_pause",player.pause); 

和:

var obj = swfobject.getObjectById($(this).attr('id')); 
if(obj){ 
    obj.movie_pause(); //This is where the error takes place 
} 

現在奇怪的是,當第一次加載頁面,一切都正常運行。但是,刷新後或滑動幾次後,IE會開始拋出錯誤SCRIPT16389:未指定的錯誤並指向上面的行。但是,如果我用IE調試,它,而不是指向:

function __flash_addCallback(instance, name) { 
    instance[name] = function() { 
     return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>")); 
    } 
} 

我使用SWFObject嵌入我的影片:

<object id="testimonial_{testimonials_ID}" 
    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="720" height="480"> 
    <param name="movie" value="<?php echo content_url();?>videos/player/agflvplayer.swf"> 
    <param name=FlashVars value="id=testimonial_{testimonials_ID}&flvurl=<?php 
    echo content_url();?>{testimonials_url}&player_skin=<?php 
    echo content_url();?>videos/player/SkinOverAllNoCaption.swf&volume=0"> 
    <param name="wmode" value="transparent"> 
    <!--[if !IE]>--> 
    <object type="application/x-shockwave-flash" data="<?php echo content_url();?>videos/player/agflvplayer.swf" width="720" height="480"> 
     <param name=FlashVars value="id=testimonial_{testimonials_ID}&flvurl=<?php 
     echo content_url();?>{testimonials_url}&player_skin=<?php 
     echo content_url();?>videos/player/SkinOverAllNoCaption.swf&volume=0"> 
     <param name="wmode" value="transparent"> 
     <!--<![endif]--> 
     <p>Alternative content</p> 
     <!--[if !IE]>--> 
    </object> 
    <!--<![endif]--> 
</object> 

你可以看看這個問題的http://人。 oregonstate.edu/~egliju/agtools/welcome/test/'>http://people.oregonstate.edu/~egliju/agtools/welcome/test。 我能找到的最近的問題是ExternalInterface not working in IE after page refresh但沒有答案(他們只是推薦使用swfobject,我是)。

+0

如果您無法獲得任何幫助,請聯繫瀏覽器的供應商。 – hakre

回答

3

好的,看來我已經想出了一個解決問題的方法。它似乎必須由於Internet Explorer緩存Flash播放器而出於某種原因而導致問題。因此,我通過將電影參數url更改爲每個玩家不同的東西來欺騙它重新加載自身。

<param name="movie" value="player/player.swf?no_cache=<?php echo rand();?>"> 
+0

感謝您發表本文。我已經用Math.random()應用了與JavaScript相同的邏輯,並且它剛剛結束了與Internet Explorer的8小時戰鬥。我知道人們有這個問題,爲什麼沒有人偶然發現這個答案呢? –

+0

爲了記錄我正在使用swfObject的動態嵌入,並且有相同的問題/解決方案。太糟糕了,我不能一勞永逸 –

+1

我有一個類似的問題,與閃存片在jQuery對話框中顯示:幻燈片。在ie中,不能調用flash對象上的方法。也使用swfobject。殺死過渡解決了它。 IE在這裏有一些嚴重的古怪。 – Taylor