s***@163.com
s***@163.com
  • 发布:2016-12-07 14:01
  • 更新:2016-12-07 18:46
  • 阅读:1993

loadURL载入预加载页面的问题 不显示动态添加内容!

分类:HTML5+

@dcloud
在商品详情页 (是父子页面) detail_main 和detail.sub 在detail-main 里点击 进入购物车的按钮,却打不开 购物车页面 购物车页面是 一进APP就预加载的 也是一个子页面 底部导航的那种, 用show 打不开cart.html 于是想用loadURL 建立一个父页面parentPage.html 上面 就一个头部和加载中 点购物车按钮以后 打开 parentPage.html 同时执行cart.html里的ajax 获取数据 在loadURL cart.html 基本都是可以的,就2个大问题,
第一 打开的cart.html 动态添加的html 不显示,已测试 ajax 是正常的 只是loadURL 打开就不显示,
第二 监听预加载的 cart.html 的 "loaded" 事件完全没反应 ,监听所有预加载页面好像都没反应

//前往购物车页面  
document.getElementById("jincart").addEventListener('tap',function () {    

    var cartfu = plus.webview.getWebviewById("services/parentPage.html");   
    var cartvm = plus.webview.getWebviewById("services/cart.html");  
    cartfu.show("pop-in",200);//先显示一个父页面只有头部和加载中  
        cartvm.evalJS("showCarts()");  //通知购物车页面ajax拉去数据  
    cartfu.loadURL("cart.html"); //载入购物车页面  页面可以载入 但是ajax添加的内容不显示  本身内容是可以显示的, 同时ajax数据也console打印出来了 没有问题 都执行了 就是不显示  
    cartvm.addEventListener("loaded",function  () {  
        console.log(1);//这句不执行  loaded监听不到  
    });           
});

附上测试工程文件

先点击进入 详情页 在点击进入 购物车!

2016-12-07 14:01 负责人:无 分享
已邀请:
s***@163.com

s***@163.com (作者)

有大大帮忙回答下吗?

星陨

星陨 - 前端业余开发者

为什么不用mui.openWindow的方式打开呢,document.addEventListener('DOMContentLoaded',function(){
},false); 试试dom加载完后再ajax添加页面内容

  • s***@163.com (作者)

    mui.openWindow 打开也试了也打不开预加载的cart 只能打开 没预加载的 我新建里cartCopy.html 没有预加载 然后在cartCopy里加入mui.ready 里面ajax 是可以的,但是打开以后会一闪一下,而且这样 等于我创建了2个页面,一个APP开始就预加载的 cart 一个cartCopy

    2016-12-07 15:03

  • 星陨

    利用webview.evalJS();或者mui.fire刷新已创建页面的内容,然后 plus.webview.show()显示页面试试

    2016-12-07 15:11

  • s***@163.com (作者)

    大大 已经附上测试工程 再帮忙 查看下 怎么回事!

    2016-12-07 15:47

赵梦欢

赵梦欢 - 专注前端,乐于分享!

直接放一个测试工程或者流程图说明问题比较好,你这页面说得太多,局外人不知所云。

  • s***@163.com (作者)

    大大 已经附上测试工程

    2016-12-07 15:46

s***@163.com

s***@163.com (作者)

大大 已经附上测试工程!

赵梦欢

赵梦欢 - 专注前端,乐于分享!

先去掉预加载老老实实写吧,看了看上面的测试工程,代码太乱了,预加载普通页面和预加载模板通过loadURL加载页面混着用没必要,预加载和模板页面本来就是两种不同的优化方案,取一种就可以了,没必要都用。

给两个例子,自己再琢磨一下吧,下载地址:mui-demo

  • preload:预加载注意事项
  • template:模板页面实现原理
  • s***@163.com (作者)

    这个Demo我有 我也看了 我本来一直都是用预加载的 没有用loadURL 现在用show方法 预加载的A父窗体里点击按钮 打不开另一个B父窗体预加载出的子窗体 有什么办法能解决吗?

    2016-12-08 08:26

  • s***@163.com (作者)

    就拿DEMO 来说 - preload:预加载注意事项 这个DEMO里 如果sub 也是预加载出来的,show 就打不开了!

    2016-12-08 08:32

  • s***@163.com (作者)

    还有就是 虽然demo里 sub 如果预加载出来 用mui.open可以打开 但是动态加载的内容却显示不出来!

    2016-12-08 08:45

  • 赵梦欢

    回复 s***@163.com: 需要注意时机,在show事件中可以预加载sub.html

    2016-12-08 10:00

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