IE SCRIPT16389 Ошибка с обратным вызовом Flash ExternalInterface и ползунком JQuery - PullRequest
3 голосов
/ 14 июля 2011

У меня действительно странная проблема с Internet Explorer, на моем веб-сайте я использую плагин JQuery AnythingSlider для отображения некоторых видео. Всякий раз, когда кто-то переходит к следующему видео, у меня мгновенный обратный вызов:

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: Unspecified Error и указывает на указанную выше строку. Но если я отлаживаю с помощью 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://people.oregonstate.edu/~egliju/agtools/welcome/test/'> http://people.oregonstate.edu/~egliju/agtools/welcome/test. Ближайшая проблема, которую я могу найти, это ExternalInterface, не работающий в IE после обновления страницы , но ответа нет (они просто рекомендуют использовать swfobject, которым я являюсь).

1 Ответ

3 голосов
/ 26 июля 2011

Хорошо, похоже, я нашел способ обойти эту проблему.Кажется, это связано с тем, что Internet Explorer кеширует флэш-плеер и по какой-то причине вызывает проблемы.Поэтому я заставил его каждый раз перезагружать себя, меняя URL-адрес параметра фильма на что-то свое для каждого игрока.

<param name="movie" value="player/player.swf?no_cache=<?php echo rand();?>">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...