当前博客:封装支持库加载模块顺序问题?

69 次浏览【转载需注明来源】

博客作者:【上头中】

个性签名:寒窗苦读十年一朝凤舞九天

//在这里编写相关的JS代码
//@导入环境_文件夹>[解压]
常量 AdmZip = 导入模块("adm-zip");

定义函数 unzipFile(zipFilePath, extractPath) {
    开始俘获异常 {
        常量 zip = 新建对象 AdmZip(zipFilePath);
        zip.extractAllTo(extractPath, 真); // 第二个参数为true表示覆盖已存在的文件
        调试输出(`文件 ${zipFilePath} 已成功解压到 ${extractPath}`);
    } 俘获异常 (error) {
        console.error(`解压文件时出错: ${error.message}`);
    }
}

为什么必须要使用这个$(document).ready(定义函数 () {unzipFile("E:/123.zip", "E:/"); });才不会提示 not defined

$(document).ready(定义函数 () {
       unzipFile("E:/123.zip", "E:/");
});

我看示例中也没有这样写,是哪个地方没设置好吗?

默认排序
Generic placeholder image
Generic placeholder image
已采纳
快码FOF编程 Time: 2024-03-08 18:38:08

因为你直接在脚本标签中使用了,这等于页面加载后立即执行您封装的命令。

而自己写的js文件加载顺序要晚于脚本标签。

规避这个问题的方法有这几种方案

1、不直接在脚本标签中直接使用命令,比如点击按钮等元素调用方法执行,就不会。

2、使用页面加载完毕监听,也就是你提文中的代码,不过这个代码其实有更简单的写法,参考:

$(定义函数() {
    // 已经加载完毕,可以开始执行代码
});

3、将脚本标签移动到网页主体的外面,参考:

<网页主体></网页主体>
<脚本></脚本>

以上三种方案都可以规避这个问题

Generic placeholder image
上头中 回复 1楼 快码FOF编程 Time: 2024-03-08 19:01:17

透彻


封装支持库加载模块顺序问题?