概述
之前使用jqm开发,从做项目开始的时候这个问题(error loading page)就一直存在,而且一直是以一种神奇的方式存在,有时候会突然蹦出来,重新刷新一下又消失了,所以这个问题都一直拖着,直到最后实在要发版本了不能再拖了,总不能让别人在手机上刷新页面吧。
最后在jquery.mobile.js文件中调试的时候,终于发现了问题,因为我们整合了进了backbone,所以我们的页面跳转方式不用默认的jqm的页面跳转,所以在jqm.config.js中的mobileinit事件中加入了
$.mobile.linkBindingEnabled = false;禁掉了默认的jqm的页面跳转方式,才能使用backbone的方式,
$(document).bind("mobileinit", function () {
console.log("configure jqm");
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
$.mobile.defaultPageTransition = 'slide';
$.mobile.buttonMarkup.hoverDelay = "false";
$.mobile.transitionFallbacks.slideout = "none";
// Remove page from DOM when it's being replaced
$.mobile.pageLoadErrorMessage = 'Sorry, something went wrong. Please try again.';
$(document).on('pagehide', 'div[data-role="page"]', function (event, ui) {
//移除下拉监听事件
$(document).off("pageinit", "div.pull-demo-page");
$(event.currentTarget).remove();
});
});
我们发现出于某种原因这种跳转方式有时候又没有被禁掉,而jqm的这种页面跳转方式没被禁掉的时候,在backbone中页面切换就会有error loading page的问题,最后定位问题是在jqm.config.js加载顺序不对,我们并没有在最开始加载这个文件,最后的解决方案是我们在main.js中如下处理
require(['app', 'jqmconfig'], function (app,jqmconfig) {
app.initialize();
});
我们在上面代码中加了jqmconfig,这是jqm.config.js的引入后的文件名,表示我们在开始的时候就加载jqm.config.js文件,即绑定mobileinit事件,问题就解决了。
最后
以上就是忧虑河马为你收集整理的jqm(jquery mobile)报错:error loading page解决的全部内容,希望文章能够帮你解决jqm(jquery mobile)报错:error loading page解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复