详细问题描述
[内容]
【基于 底部选项卡模板】webview 通过appendJsFile 或 setJsFile 注入的js 代码会执行两次(测试打包后debug模式,还是会执行两次)
重现步骤
[步骤]
在IDE中打开控制台 静等启动
[结果]
onloaded: 1 at js/util.js:40
注入代码
https://www.baidu.com/
txmp_style_miniplay:null
注入代码
https://www.baidu.com/
txmp_style_miniplay:null
onloaded: 0 at js/util.js:40
注入代码
http://www.qq.com/
txmp_style_miniplay:[object HTMLStyleElement]
注入代码
http://www.qq.com/
txmp_style_miniplay:[object HTMLStyleElement]
[期望]
onloaded: 1 at js/util.js:40
注入代码
https://www.baidu.com/
txmp_style_miniplay:null
onloaded: 0 at js/util.js:40
注入代码
http://www.qq.com/
txmp_style_miniplay:[object HTMLStyleElement]
运行环境
[系统版本]
windows
[IDE版本]
HBuilder 8.8.4.201709282021
旧版本也存在这个问题
附件
见附件 demo
联系方式
Email: 2012yejing@sina.cn
Jungley88 (作者)
已修改 细化问题,并附上完整demo,还请看下
2017-10-10 15:14
Neil_HL
回复 Jungley88:都和你说啦http://www.qq.com/这个网址会跳转https://xw.qq.com/index.htm会执行两次loaded,你set了两次,把setJsFile放在page创建的时候就行啦
2017-10-10 15:37
Jungley88 (作者)
回复 Neil_HL: 要不你把demo 你运行一遍看看? 另外, http://www.qq.com/ 并不会跳转 到 微信版,我用的 华为平板测试。还有 setJsFile 确实是放在page创建的时候调用的
2017-10-10 15:42
Neil_HL
回复 Jungley88:看了demo,把setJsFile放在监听page的loaded之前,不要放在这个事件里面,就不会出问题了,把console.log('onloaded: '+index)换成console.log('onloaded: '+page.id)你会看到又把qq的页面的id打印了两遍, http://www.qq.com/ 这是pc站,https://xw.qq.com/index.htm这是wap站会自动跳的,你用手机浏览器试试吧。
2017-10-10 15:57
Jungley88 (作者)
把setJsFile放在监听page的loaded之前 就正常了, 跟 底部选项卡模板也没关系,跟 http://www.qq.com/ 跳转 也没关系 。另外一个话题 http://ask.dcloud.net.cn/question/29966 也是这个问题
2017-10-10 16:18