【问题标题】:trouble with IE, YUI, and FlashIE、YUI 和 Flash 的问题
【发布时间】:2011-10-05 11:46:36
【问题描述】:

好的,这是我的第一篇文章,所以我会尽量不要在这里听起来很无聊.....

我正在我的公司网站上开展一个项目,但我遇到了一些视频问题。我正在通过 AJAX 调用获取一些视频并将其放入 YUI 面板中以创建我自己的视频灯箱。除了 IE(特别是 8,因为我们刚刚放弃支持 7),所有浏览器都运行良好。我可以让面板打开并显示 Flash 播放器,但它不会加载 .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);        
    }
};

【问题讨论】:

    标签: javascript flash panel lightbox yui


    【解决方案1】:

    我最初是通过将 AJAX 调用中的数据转储到一个对象标签中来解决这个问题的,这解决了这个问题并完美地跨浏览器工作。

    我们已经改变了我们提供媒体的方式,所以我最终使用 Vimeo 来托管视频,它非常简单而且效果很好。

    【讨论】:

      【解决方案2】:

      这部分代码看起来可能不符合您的预期:

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

      此代码将包含标签,但不包含标签。我怀疑你试图要么获取两个标签,要么不获取标签。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多