铭
  • 发布:2017-01-10 12:11
  • 更新:2018-01-02 11:51
  • 阅读:1728

【报Bug】更新后appendJsFile执行失败

分类:HTML5+

详细问题描述
[内容]
通过appendJsFile把Js注入到外部网站执行,js文件中监听了plusready事件,当plus准备好后,调用父窗体的方法来通过evaljs执行js文件中的方法.

JS文件部分代码
可以看到js文件中有handleOutsite方法

父webview中的部分代码(其中外网放到了子webview进行加载)
可以看到父webview中加载了子webview,并通过appendJsFile把Js文件注入到子Webview中执行

然后看一下控制台输出的结果


看到进入js文件时打印出来的文字"进入outsiteEvalJS"和“提前执行”说明js文件中的代码被执行了(可以看JS文件的代码截图),再往下看,可以知道父webview中的readyShow方法被调用执行了(可以看父webview中的代码中的readyShow截图)

但问题就在这里,这时候看到控件台红色报错文字说:Uncaught ReferenceError: handleOutsite is not defined
但通过上面分析知道已经执行了js文件,并且js文件里面有这个方法,但为什么却找不到了呢?
并且很奇怪的是打印出来的文字"进入outsiteEvalJS"和“提前执行”的时候,后面看到打印该文字所在的文件和行数,并不是注入的js.估计错误可能就是这样导致的.

不知道是什么原因,上一个版本是正常的,更新后出现的问题,希望官方尽快解决.

重现步骤
[步骤]
[结果]
[期望]

运行环境
[系统版本]
[浏览器版本]
[IDE版本]
[mui版本]

附件
[代码片段]
[安装包]

联系方式
[QQ]
[电话]

2017-01-10 12:11 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

临时解决方案:
全局变量命名时候,写为windows.variable;

铭

(作者)

好的,谢谢
在JS文件中加了一行就行了,希望对跟我有同样问题的人有帮助
window.handleOutsite = handleOutsite;

黄X旭

黄X旭

图片都看不到了

2***@qq.com

2***@qq.com

appendJsFile(‘../a.js’); 在ios版本 好像不能运行 但是安卓正常 你们遇到这情况吗?

  • h***@126.com

    ios就是有问题,简直有毒

    2019-04-07 18:32

该问题目前已经被锁定, 无法添加新回复