最近我用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()
方法?
答案 0 :(得分:1)
我们遇到了同样的问题。似乎是Windows Phone上的IE中的解析错误。问题是UglifyJS默认用逗号替换分号,导致奇怪的错误。
禁用序列选项为我们解决了这个问题。来自文档
sequences:true,//使用“逗号运算符
连接连续状态
将该选项设置为false将使IE感到高兴。
如果您使用Grunt,请将其添加到uglify选项:
compress: {
sequences: false
}