收藏
回答

web-view嵌入普通h5页面,h5页面原来引入的js失效,求解。

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug web-view 客户端 Version 7.0.4 2.6.5

web-view嵌入普通h5页面,h5页面原来引入的外部的我们自己写的js文件中的代码无法调用,但是将相应的js代码粘贴到h5页面的<script></script>标签之后,就能够生效。     这个h5页面已经加入到安全域名。


回答关注问题邀请回答
收藏

3 个回答

  • 随和 性善
    随和 性善
    2021-07-29

    最近开发的时候遇到了这种问题。

    问题描述:

    1.H5在浏览器访问的时候是没有问题的。

    2.但是在嵌入到微信小程序之后,部分机型出现:页面可以加载出来、但无数据,js失效...

    (我出现的问题时候,安卓手机在小程序中可以显示出数据;但是iOS不行,页面可以加载出来、但无数据)

    查找问题:

    1.先在js中 alert 一下

    //页面初始化加载
    window.onload = function(){
        alert('页面初始化加载')
        Async_load_data()
    };
    

    2.浏览器访问正常

    3.然后用小程序访问一下(出现问题:没有弹框,意味着没有触发js。js失效:没有引用成功)

    //这个jq文件,没有引入成功
    <script type="text/javascript" src="{$Think.const.ADMIN_JS_URL}jquery.js"></script>
    

    4.找到问题

    //在入口文件中定义的路径是http的。
    //虽然浏览也能访问到该文件,
    //但是在小程序内嵌之后,因为机型的原因导致http的路径引入失败【安卓没有影响,苹果不行】
    define('SITE_URL','HTTP://127.0.0.1/');
    define('ADMIN_JS_URL',SITE_URL.'space/admin/public/js/'); 
    

    解决问题:

    //为了省劲,直接引入外部js【必须是https开头】。	
    <script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.4.1.min.js"></script>
    

    注意:

    1.网页内嵌<web-view src="https://www.baidu.com/"></web-view> src的属性必须是https。

    2.html页面在引入外部的文件是,引入路径最好也是https,不然部分机型如:iOS 会导致文件引入失败

    3.html 内部的ajax 请求 也是https


    2021-07-29
    有用
    回复
  • ^@~江湖!
    ^@~江湖!
    2020-04-26

    你好,请问外部进入js 是不能加载? 我使用了web-view组件加载h5页面, 页面加载出来了,但是js没有加载,需要返回重新进入好几次才能加载js,请问这种问题该如何处理? 谢谢

    2020-04-26
    有用
    回复 1
    • 随和 性善
      随和 性善
      2021-07-29
      如果是html代码引入【例如:<script src="https://resq.com/jquery.js"></script>】的外部js是可以引入的,但是也分情况,一定要是https的路径不然IOS机型内嵌时就会出现问题,安卓的到是没有要求
      2021-07-29
      回复
  • 是小白啊
    是小白啊
    2019-05-07

    麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2019-05-07
    有用
    回复
登录 后发表内容