收藏
回答

webview重置src后报错:一个页面只能插入一个webview

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 客户端 7.0.3 2.6.2

- 当前 Bug 的表现(可附上截图)


wxml:

<web-view class="browser" wx:if="{{ url }}" src="{{url}}"></web-view>

js:


- 预期表现

在刷新webview的同时不增加history,有一个办法是给第二次url赋值加一个100毫秒的延迟或者在第一个url赋空值得回调中进行第二次赋值,但是偶尔安卓机上还是会出现报错:‘一个页面只能插入一个webview’,而且延迟的方案肯定不是可靠的方案,归根揭底还是在于底层的修改,页面其实只有一个webview,只是修改了url 为什么会报一个页面只能插入一个web-view的错呢,望修复,或者增加一个不改变url能刷新webview的接口

- 复现路径


- 提供一个最简复现 Demo

测试时请开启不要检测合法域名,因为是测试号,没法添加合法域名

代码片段:https://developers.weixin.qq.com/s/XJIvlXmY7e65

最后一次编辑于  2019-03-18
回答关注问题邀请回答
收藏

5 个回答

  • 曹大静
    曹大静
    2021-08-23

    在web-view外面再套一层view,并且加上v-if就好了


    <view wx:if="{{showWebview}}">

          <web-view src="{{src}}" wx:if="{{showWebview}}" bindmessage="onmessage"></web-view>

        </view>


    2021-08-23
    有用 2
    回复
  • ALLEN
    ALLEN
    2021-09-02

    把<web-view>标签提高到最外层 和view同级就可以了,用v-if或v-show判断,例:

    <web-view v-if="..."/>

    <view v-else/>

    2021-09-02
    有用 1
    回复
  • LD'NL
    LD'NL
    2023-05-31

    解决了/?么

    2023-05-31
    有用
    回复
  • ,.!
    ,.!
    2023-03-08

    setTimeout 一下就行了

    2023-03-08
    有用
    回复
  • 灵芝
    灵芝
    2019-03-18

    这个问题是否只有开发工具有,在真机上能复现么?这边真机测试没有复现

    2019-03-18
    有用
    回复 14
    • 皓月叶舞
      皓月叶舞
      2019-03-18

      https://developers.weixin.qq.com/s/uqJcGXmZ7X6J 这个代码片段 一开始是百度官网的url,后面重置为qq的 但是因为报错,qq的没有重置成功 开发工具和真机都能复现 其实刚才那个代码片段也复现了 因为我2次用的一个url 所以你真机上看不出来

      2019-03-18
      回复
    • 灵芝
      灵芝
      2019-03-19回复皓月叶舞

      把wx:if去掉就可以了


      2019-03-19
      回复
    • 皓月叶舞
      皓月叶舞
      2019-03-20

      是的 感谢官方大大

      2019-03-20
      回复
    • Mr.He
      Mr.He
      2019-12-25回复皓月叶舞
      楼主,你好,你去掉了wx:if  web-view 在真机上面还能刷新页面?
      2019-12-25
      回复
    • Mr.He
      Mr.He
      2019-12-25
      去掉了wx:if web-view 在真机上面不能刷新页面
      2019-12-25
      2
      回复
    查看更多(9)
登录 后发表内容