EXTJS 加入中文包后的 Ext.MessageBox = Ext.Msg 依然是英文的BUG

目的:是Ext的提示框使用中文按钮

现象:当用户加载ext中文包,但是Ext.MessageBox ,Ext.Msg的时候依然是英文的button


源码: Ext.MessageBox = Ext.Msg = new this();


    if(Ext.MessageBox){
        Ext.window.MessageBox.prototype.buttonText = {
            ok: "确定",
            cancel: "取消",
            yes: "是",
            no: "否"
        };
    }


结论:综合分析后就不难得出,因为Ext.MessageBox = Ext.Msg全局对象已经在导入中文包之前已就已经生成了,所以后来的中文包就无法作用了(这里做一个猜测,没有去验证有兴趣的人可以自己验证了,虽然源代码是修改了该类的prototype对象,但是实例化的对象不是直接调用该值去生成弹出窗口,而是实例化对象的时候已经把该buttonText参数闭包给某些方法了)

解决方案:

if(Ext.MessageBox){
        Ext.window.MessageBox.prototype.buttonText = {
            ok: "确定",
            cancel: "取消",
            yes: "是",
            no: "否"
        };
        Ext.MessageBox = Ext.Msg = new Ext.window.MessageBox();
    }

只需要在中文包里重新生成下该对象即可




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值