MUI在第二次打开预加载的webview时,怎么让其重新回到顶部?

felix9ia
  • 6

大家好,我有许多商品的主页A,和预加载的商品详情共用页B。

点击商品1,则跳转到预加载的详情页B中显示,在返回A时,由于B是预加载的,MUI在处理机制上是将B隐藏了。

重点来了!
当我返回主页A并点击商品2时,再次被打开的页面B居然(自然)还是在上次我浏览商品1的地方。
但我想要的效果是,每一次打开页面B时,都是在顶部的。

试过的方法

  • 页面B重写mui.back(),reload自己,但是会影响返回。

  • 页面B重写mui.back(),mui.currentWebview.opener().reload(); 返回A后会回到顶部(正是我要的效果),但它不应该出现在A,而是B……

找了一圈MUI的预加载,只找到如果预加载,却没有提供预加载后该怎么处理类似这样的问题,寻求大家帮助,谢谢。

页面A相关代码

/******页面预加载*******/
var good_content = mui.preload({
                    url: 'content/good_content.html',
                    id: 'good_content.html'
                });
/*****进入商品详情页*******/
function browseGood(good_content) {
    mui("#good").on('tap', 'a', function() {
            if(!good_content) {
                alert('不存在订单详情页');
            } else {
                console.log(JSON.stringify(good_content));
            }
            var goodId = this.querySelector('h4').title;
            console.log("你已经点击了商品" + goodId);
            //定义商品详情页面

            mui.fire(good_content, 'goodIdtran', {
                'goodId': goodId
            });

            mui.openWindow({
                id: 'good_content.html',
            });
        })

页面B相关代码

    mui.plusReady(function() {

            var vmGoodContent = new Vue({
                el: '#goodContent',
                data: {
                    goodSeekItems: {}
                },
                methods: {
                    //AJAX获取用户点击的商品信息
                    getContentByGoodId: function(goodId) {
                        console.log('这是vue的' + goodId);
                        ajaxGoodContent(goodId, this);
                    }
                }
            });
            window.addEventListener('goodIdtran', function(e) {
                var goodId = e.detail.goodId;
                console.log("内容页面已接受商品" + goodId);
                vmGoodContent.getContentByGoodId(goodId); //根据id向服务器请求商品详情
            });
回复
阅读 4.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏