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被多次触发的问题。从代码来看,主要问题可能出在以下几个方面:
-
每次页面加载时都会创建新的webview并执行appendJsFile,这可能导致脚本被重复注入。
-
代码中没有对webview的生命周期进行管理,可能导致内存泄漏和重复执行。
建议的解决方案:
- 将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.js文件是否被正确加载,可以添加加载完成回调:
itme.appendJsFile('_www/style/js/1.js', function(){
console.log('js file loaded');
});