2013-06-18 94 views
0

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

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()方法?

回答

1

我们得到了同样的问题。似乎是Windows Phone上的IE中的解析错误。问题在于,默认情况下,UglifyJS会用逗号替换分号,导致奇怪的错误。

禁用序列选项为我们解决了它。从文档

序列:真,//加入的“逗号操作

设置,选项设置为false将使IE高兴连续statemets。

如果使用咕噜,这增加了丑化选项:

compress: { 
    sequences: false 
}