huiyichengyi
huiyichengyi
  • 发布:2015-04-08 14:56
  • 更新:2015-05-03 11:26
  • 阅读:3344

webview.open()打开明细页面后重复加载问题

分类:MUI

mui('#list').on('tap', 'a', function() {
var id = this.getAttribute('href');
//alert(id);
var type = this.getAttribute("open-type");
var webview =mui.openWindow({url:'yysq2.html',id:this.innerHTML,extras:{yydh:this.innerHTML,pid:curId}});
});

list界面增加tab点击事件后,到明细的yysq2.html页面后会加载两次yysq.html页面,什么原因啊?
附件是源码 从菜单预约单编辑界面进入裂变然后在进入添加明细界面,页面加载两次需要回退两次才能返回列表页面

2015-04-08 14:56 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

确认你给的压缩包是正确的。里边没什么menu.html。

DCloud_UNI_FXY

DCloud_UNI_FXY

你给的附件里的源码。跟你问题里描述的不一致。没有什么菜单。列表之类的。

huiyichengyi

huiyichengyi (作者)

不是啊 你运行后我在manifest.json里指定了MENU.html为启动界面 在手机上运行后你就可以看到主界面菜单了,然后点击里面的预约单编辑按钮 然后进入具体列表页面啊
具体表单填写界面需要重复返回两次才能返回预约单申请界面
在List页面中如果我将
// mui('#list').on('tap', 'a', function() {
// var id = this.getAttribute('href');
// //alert(id);
// var type = this.getAttribute("open-type");
// var webview =mui.openWindow({url:'yysq2.html',id:this.innerHTML,extras:{yydh:this.innerHTML,pid:curId}});
// });
/**
改成
在<ul id="list" class="mui-table-view mui-table-view-chevron">
......................................
................................
<li class="mui-table-view-cell"><a href="" class="mui-navigate-right" onclick="opennew(this)">YY201504071640 </a>
</ul>

function opennew(me)
{
plus.webview.create('yysq2.html', 'yysq', {}, {
yydh: me.innerText
}).show();
这样的话到申请界面就没有重复两次back返回的情况 什么原因啊?

huiyichengyi

huiyichengyi (作者)

打包错了 不好意思啊!

DCloud_UNI_FXY

DCloud_UNI_FXY

列表页不要用href=""

使用href="javascript:;"

否则会导致当前页面刷新。

huiyichengyi

huiyichengyi (作者)

我试了这种写法还是有这种问题诶,<li class="mui-table-view-cell"><a href="javascript:;" class="mui-navigate-right">YY201504071638 </a>
</li>
<li class="mui-table-view-cell"><a href="javascript:;" class="mui-navigate-right">YY201504061628 </a>
</li>
<li class="mui-table-view-cell"><a href="javascript:;" class="mui-navigate-right">Item 4</a> ,但是我看mui给的例子上面不也是这中写法茫,它那个咋就不会出现这种问题,另外群主还得麻烦您一下,我刚申请了加入官方qq交流群,麻烦您让我通过一下啊,很多问题没地方问诶,我的用户名是huangwei@cimc.com,刚加的麻烦您留意下啊

DCloud_UNI_FXY

DCloud_UNI_FXY

把你里边的onclick事件去掉

<a href="javascript:;" class="mui-navigate-right" onclick="opennew(this)">YY201504071640  </a>
huiyichengyi

huiyichengyi (作者)

去掉了啊!<li class="mui-table-view-cell"><a href="javascript:;" class="mui-navigate-right">YY201504071638 </a>
</li>
<li class="mui-table-view-cell"><a href="javascript:;" class="mui-navigate-right">YY201504061628 </a>
</li>
<li class="mui-table-view-cell"><a href="javascript:;" class="mui-navigate-right">Item 4</a>

mui ('#list').on('tap', 'a', function() {
var id = this.getAttribute('href');
//alert(id);
var type = this.getAttribute("open-type");
var webview =mui.openWindow({url:'yysq.html',extras:{yydh:this.innerHTML}});
});

huiyichengyi

huiyichengyi (作者)

我换了另一种通过preload方式加载就没有出现这种问题了,那个li 的a标签里面保存的还保持为空的状态


<ul id="list" class="mui-table-view mui-table-view-chevron">
<li class="mui-table-view-cell"><a href="" class="mui-navigate-right" >YY201504071640 </a>
</li>
<li class="mui-table-view-cell"><a href="" class="mui-navigate-right">YY201504071638 </a>
</li>
</ul>


var curId=null;
mui.init({
swipeBack: false,
pullRefresh: {
container: '#pullrefresh',
down: {
callback: pulldownRefresh
},
up: {
contentrefresh: '正在加载...',
callback: pullupRefresh
}
},preloadPages:[{
id:'yysq',
url:'yysq3.html'
}
]

            });  

var detailPage = null;
//添加列表项的点击事件
mui('#list').on('tap', 'a', function(e) {
var id = this.getAttribute('href');
//获得详情页面
if(!detailPage){
detailPage = plus.webview.getWebviewById('yysq');
}
alert(this.innerHTML);
//触发详情页面的newsId事件
mui.fire(detailPage,'newsId',{
id:this.innerHTML
});
//打开详情页面
mui.openWindow({
id:'yysq'
});
});


  • window.addEventListener('newsId',function(event){
    //获得事件参数
    var id = event.detail.id;
    //根据id向服务器请求新闻详情
    alert(id);
    });
大萝卜

大萝卜

检查页面中是否重复加载了<script src="js/mui.min.js"></script>
通常的js重复加载没有问题,但是MUI的js重复加载会有问题

  • imderek

    谢谢萝卜哥的提示啊!有个登录后预加载的页面重复加载的问题困扰了N久,原来就是重复加载了mui.min.js的原因!

    2015-08-16 10:58

  • 蔓曼

    谢谢 我也是这个问题呢

    2015-09-19 13:47

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