uni-app appendJsFile被多次触发

uni-app appendJsFile被多次触发

开发环境 版本号 项目创建方式
HBuilderX 3.1.3 云端

产品分类:HTML5+


操作步骤:

见描述

预期结果:

见描述

实际结果:

见描述


bug描述:

<!DOCTYPE html>  
<html lang="zh-cn">  
<head>  
    <meta charset="utf-8">  
    <script src="html5plus://ready"></script>  
</head>  
<body>  
</body>  
<script type="text/javascript">  
itme =  plus.webview.create(  
        "https://baidu.com",  
        'winsu_12.545454',{  
            plusrequire:'ahead',//注入5+ API的时机【尽量提前注入】  
        });  
    plus.webview.currentWebview().append(itme);  
    itme.appendJsFile('_www/style/js/1.js');  
</script>  
</html>

url.js文件内容为

alert(typeof(aaa))  
aaa = 'a'

更多关于uni-app appendJsFile被多次触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app appendJsFile被多次触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个关于uni-app中appendJsFile被多次触发的问题。从代码来看,主要问题可能出在以下几个方面:

  1. 每次页面加载时都会创建新的webview并执行appendJsFile,这可能导致脚本被重复注入。

  2. 代码中没有对webview的生命周期进行管理,可能导致内存泄漏和重复执行。

建议的解决方案:

  1. 将webview创建和脚本注入放在plusready事件回调中:
document.addEventListener('plusready', function() {
    var itme = plus.webview.create(
        "https://baidu.com",
        'winsu_12.545454',{
            plusrequire:'ahead'
        });
    plus.webview.currentWebview().append(itme);
    itme.appendJsFile('_www/style/js/1.js');
}, false);
  1. 检查1.js文件是否被正确加载,可以添加加载完成回调:
itme.appendJsFile('_www/style/js/1.js', function(){
    console.log('js file loaded');
});
回到顶部