0

最近我使用 UglifyJS 压缩我的 js 代码进行测试。然后我发现压缩后,我无法使用window.external.notify()通知外面的WebBrowser控件。我的演示代码在这里:

function MyNotify () {
    try{
        alert("Notify");
        window.external.notify("Notify");
    } catch (e){
        alert(e.message);
    }
}

function MyNotifyCompressed(){
    try {
        alert("Notify"), window.external.notify("Notify");
    } catch (e) {
        alert(e.message);
    }
}

然后我打电话WebBrowser.InvokeScript("MyNotifyCompressed"),它提醒我这样的事情:

对象不支持此操作

window.external.notify()为什么压缩后不能调用该方法?

4

1 回答 1

1

我们遇到了同样的问题。似乎是 Windows Phone 上 IE 中的一个解析错误。问题是 UglifyJS 默认用逗号替换分号,这会导致奇怪的错误。

禁用序列选项为我们解决了这个问题。从文档

序列 : true, // 用“逗号运算符”连接连续的状态

将该选项设置为 false 将使 IE 满意。

如果您使用 Grunt,请将其添加到 uglify 选项中:

compress: {
    sequences: false
}
于 2014-04-07T08:41:51.797 回答