• Web Uploader在低版本IE下无法显示Flash的一种情况


    用户反馈在IE 8下无法正常显示Web Uploader控件,并已安装了Flash插件。调试发现在内部抛出了Runtime Error的错误,关键代码如下:

    Runtime.create = function( opts, orders ) {
        var type, runtime;
        
        orders = orders || Runtime.orders;
        $.each( orders.split( /s*,s*/g ), function() {
            if ( factories[ this ] ) {
                type = this;
                return false;
            }
        });
        
        type = type || getFirstKey( factories );
        
        if ( !type ) {
            throw new Error('Runtime Error');
        }
        
        runtime = new factories[ type ]( opts );
        return runtime;
    };

    可以发现是对应的FlashRuntime并未找到。查看源代码发现在注册FlashRuntime时候有一个版本判断,如果没有符合最低版本要求则不注册。查看用户安装的Flash版本确实低于该要求。

    FlashRuntime.register = function( name, component ) {
        component = components[ name ] = Base.inherits( CompBase, $.extend({
        
            // @todo fix this later
            flashExec: function() {
                var owner = this.owner,
                    runtime = this.getRuntime();
        
                return runtime.flashExec.apply( owner, arguments );
            }
        }, component ) );
        
        return component;
    };
        
    if ( getFlashVersion() >= 11.4 ) {
        Runtime.addRuntime( type, FlashRuntime );
    }
  • 相关阅读:
    VI中的批量替换--转载
    Zookeeper集群
    Zookeeper实现Master选举(哨兵机制)
    分布式session之token解决方案实现
    浏览器
    分布式session之redis解决方案实现
    服务器操作常用
    Nginx安装教程(Centos6.8)
    分布式锁(Redis实现)
    开发总结
  • 原文地址:https://www.cnblogs.com/junchu25/p/7275009.html
Copyright © 2020-2023  润新知