проблемы с IE, YUI и Flash - PullRequest
0 голосов
/ 14 июля 2011

Хорошо, так что это мой первый пост, поэтому я постараюсь не озвучивать здесь .....

Я работаю над проектом на своем корпоративном сайте и у меня возникают проблемы с некоторыми видео. Я получаю видео с помощью вызова AJAX и помещаю его на панель YUI, чтобы создать свой собственный лайтбокс для видео. Все работает нормально во всех браузерах, кроме, конечно, IE (особенно 8, так как мы только что отказались от поддержки 7). Я могу заставить панель открываться и отображать флэш-плеер, но он не загружает .flv или элементы управления плеером. Как я уже сказал, хорошо во всех других браузерах. Вот основной сценарий, с которым я работаю:

/**
 * Function to lazy load, then show the video panel with the content of the link passed in inside the panel
 */
var showVideoPanel = function(e, linkEl){
    Event.preventDefault(e);    

    if(!YAHOO.env.getVersion("videoPanel")) {           
        var successHandler = function() {               
            videoPanel = new COUNTRY.widget.VideoPanel("videoPanel", " ");              
            showVideoPanel(e, linkEl);
        };

        //this is not likely to go off (404 is not considered an error)
        var failureHandler = function() {
            window.location = linkEl.href;
            return;
        };

        COUNTRY.loadComponent("videoPanel", successHandler, failureHandler);
    } 
    else {              
        COUNTRY.util.Ajax.getRemoteContent('GET', linkEl.href, videoPanel.body, {
            success: function(o){                           
                var start, end, el;
                el = Dom.get(videoPanel.body);
                start = o.responseText.indexOf('<object');
                end = o.responseText.indexOf('</object>', start);                   
                el.innerHTML = o.responseText.substring(start, end);
            },
            failure: function(o){       
                el = Dom.get(videoPanel.body);          
                el.innerHTML = "The requested content is currently unavailable. Please try again later.";
            }                       
        }); 
        var bod = Dom.get(videoPanel.body);
        COUNTRY.util.Flash.flashControl(bod.getElementsByTagName("FORM")[0]);


        videoPanel.show(linkEl);        
    }
};

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Первоначально я решил эту проблему, сбросив данные из вызова AJAX в тег объекта, что решило проблему и отлично работало в кросс-браузерной среде.

С тех пор мы изменили способ работы с мультимедиа, поэтому я в итогеиспользование Vimeo для размещения видео, которое было очень простым и прекрасно работает.

0 голосов
/ 14 июля 2011

Эта часть кода выглядит так, как будто она, вероятно, не выполняет то, что вы намеревались:

start = o.responseText.indexOf('<object');
end = o.responseText.indexOf('</object>', start);                   
el.innerHTML = o.responseText.substring(start, end);

Этот код будет включать тег, но не включать тег. Я подозреваю, что вы пытаетесь либо получить оба тега, либо ни один из них.

...