zoukankan      html  css  js  c++  java
  • window.external.notify() 与 UglifyJS 压缩优化冲突

    近期研究了一下 UglifyJs 对 JS 代码的压缩,发现 UglifyJS 压缩后,无法调用 window.external.notify() 方法,JS 代码如下:

    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);
        }
    }
    

    UglifyJS 在压缩 JS 代码时,压缩选项(-c)中有这么一个参数:

    sequences -- join consecutive simple statements using the comma operator

    此选项默认是开启状态。当此选项处于开启状态时,UglifyJS 将会把多行代码压缩为一行并使用逗号进行分隔。压缩后,利用 InvokeScript() 调用 MyNotifyCompressed() 函数,系统将提示:

    Object doesn't support this action

    window.external.notify() 方法无法正常使用,则在程序中的一些逻辑无法正常处理。到底为什么无法调用这个方法呢?暂时也不大明白,可能是作用域出现问题了。

    如果使用逗号相连导致不能直接调用 window.external.notify() 的话,那还是把它单独封装成一个函数好了。

  • 相关阅读:
    fedora/centos7防火墙FirewallD详解
    python for dl
    神经网络画图工具
    卷积神经网络的复杂度分析
    如何理解深度学习中的Transposed Convolution?
    吴恩达课程及视频笔记汇总
    从LeNet-5到DenseNet
    WPS for Linux
    caffe:fine-tuning
    python下图像读取方式以及效率对比
  • 原文地址:https://www.cnblogs.com/blastmann/p/external-notify-cant-use-with-uglifyjs-compressor.html
Copyright © 2011-2022 走看看