大家好,我有许多商品的主页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……
找了一圈,只找到如果预加载,却没有找到预加载后该怎么处理类似这样的问题,寻求大家帮助,谢谢。
页面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向服务器请求商品详情
});
7***@qq.com (作者)
您好,通过您的指点,我在reload前加了hide,但是……
重载之后,仍然还是在原有的位置,并不会回到顶部。为此自己还用其他webview做了一个小案例测试reload,也还是不能够是其刷新…………我在怀疑是自己使用vue影响到了webview吗?
2016-12-29 20:08
7***@qq.com (作者)
回复 7***@qq.com: 或者,在实际开发中,有没有更好的解决方案?
2016-12-29 20:22