不能在UglifyJS压缩后使用window.external.notify()
Can't use window.external.notify() after UglifyJS compressed
最近我使用了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()
方法?
我们遇到了同样的问题。似乎是Windows Phone上IE的解析错误。问题是,UglifyJS默认情况下用逗号替换分号,这会导致奇怪的错误。
禁用序列选项解决了我们的问题。从docs
序列:true,//用"逗号"操作符连接连续的语句
将该选项设置为false将使IE高兴。
如果您使用Grunt,请将此添加到uglify选项中:
compress: {
sequences: false
}
相关文章:
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- 直接下载文件,而不是从window.open(url)
- $window.ga在AngularJS事件中未定义
- 如何将PDF作为二进制文件传递到window.open()
- window.onload没有'无法在Android WebView中工作
- window.location替换并传递URL历史记录条目中的变量
- window.on.scroll事件未启动
- 这些window.external调用是什么意思
- 如何在工作线程中调用 window.external.notify
- office-js: uncatch TypeError: window.external.GetContext 不是一
- JavaScript eval() 失败与 window.external.notify(),适用于 window.al
- 访问Selenium WebDriver中的window.external函数
- 如何在JavaScript中注册window.external.notify事件处理程序
- 是否可以等待来自window.external.Foo()调用的应答
- 设置iframe's window.external成员通过javascript
- 如何从window.external.Notify("someText")的事件处理程序中获取结果,
- 不能在UglifyJS压缩后使用window.external.notify()
- Internet Explorer - javascript “apply” 函数在 window.external e
- 使用window.external将javascript Date对象传递给c# WebBrowser控件
- 在objective C中拦截来自javascript的window.external.notify调用