lhgDialog 的坑

近期负责对一个项目进行维护,把中文翻译成英文
在项目中有弹框的使用,我找到了使用方式

 $.dialog.confirm("显示的内容",function(){
     //确定按钮的回调
     },function(){
    //取消按钮的回调
})

一开始我从js入手,竟然没有找到这个到底是谁的弹框。好坑好坑,调用方法 Ctrl+鼠标跳转不过去,文件检索也没找到方法的声明,郁闷的我不行。由于是外部js页面上引用的js也是不少,也没办法从引入的js文件去判断。
后来还是从页面入手,看弹框应用的样式,确定css文件所在的文件夹,再看同文件夹下的js文件。最后确定是lhgDialog。

在中文下没有任何问题,弹框的样子也就是
这里写图片描述

但是翻译成英文就出现了问题,弹框的标题和确定取消按钮的文字没法改成英文。天啦噜,我去找lhgDialog的源码,竟然没有发现confirm的方法声明 !也没有发现“确认”、“取消”的字符串。OMG!随后又想了一下,可能是Unicode字符,去找了一下还是没有,但是还好我多了个心眼,去掉了Unicode前面的“\”查找单个字符,果然有所发现
这里写图片描述
就是这样去定义的,取值还是根据“|”去分割成数组的方式。
这都是一个一个的字符,也不是完整字符串,我怎么改啊

随后找了官方的API说明:http://www.lhgdialog.com/api/
但是仍然没有找到confirm方法的修改说明,只有dialog的方式,以及这些的属性。
我修改了dialog的属性,改变了按钮的默认文字和title,发现按照全局设置的时候按钮文字是可以修改的,但是标题死活改不了,无奈了
没办法了,我断点找到 $.dialog.confirm 的对象,打印这个的实现,然后就发现了问题

b.confirm = function(a, c, e, f) {
        return b({
            title: "\u786e\u8ba4",
            id: "confirm.gif",
            zIndex: d(),
            icon: "confirm.gif",
            fixed: !0,
            lock: !0,
            content: a,
            resize: !1,
            parent: f || null,
            ok: function(a) {
                return c.call(this, a)
            },
            cancel: function(a) {
                return e && e.call(this, a)
            }
        })
    }

title是写死的啊!!!没有任何修改的余地,直接返回的一个对象啊。全局的设置自然是没用了。更为神奇的是,这个方法我在源码中也是没有找到。OMG,看来我是没有接触过压缩js的方式了,可能并不是简单的去空格去换行这么简单。
最终的解决办法,我自己实现了一个confirm方法,修改了标题和按钮文字。在源代码中所有的调用 $.dialog.confirm 的地方改为我实现的 confirm方法,参数都没变,就是为了不用修改参数掉用

function confirm(a, c, e, f){
    var d = function() {
        return $.dialog.setting.zIndex
    };
    return $.dialog({
        title: "confrim",
        id: "confirm.gif",
        okVal:"confrim",
        cancelVal:"cancel",
        zIndex:d() ,
        icon: "confirm.gif",
        fixed: !0,
        lock: !0,
        content: a,
        resize: !1,
        parent: f || null,
        ok: function(a) {
            return c.call(this, a)
        },
        cancel: function(a) {
            return e && e.call(this, a)
        }
    })
}

猜你喜欢

转载自blog.csdn.net/u013513053/article/details/80306826