jQuery Mobile 中的页面跳转和参数传递
关于这一点,可以说很长一段时间以来,我都不太习惯jQuery Mobile的页面跳转和参数传递,也可以说还在深入研究中。
jQuery Mobile中页面跳转有两种情况:
一是从a.html跳转到b.html;
另一种是在a.html中从page1跳转到page2,不跨页。
我的感觉是jquery 跳转页面页面,如果一个功能有多个步骤,就像个别软件的向导功能一样,有很多“下一步”,这种情况下,适合将多个页面放在一个html文件中;
另外,如果像某些软件一样有多个标签页,例如“基本设置”和“高级设置”,也适合将多个页面放在一个html文件中。
在其他情况下,我个人不喜欢将多个页面放在一个html文件中,因为这会导致单个html文件中内容过多,难以维护。
在我们的demo项目中,每个文件基本上都完成一个功能,所以在这篇文章中,我们将重点讨论从a.html跳转到b.html时如何传递参数。
1.a.html中的代码:
$(document).ready(function() {
$("#button1").on("tap", function() {
var id = 1;
window.location = "b.html?id=" + id;
});
);
});
也可以在 a.html 中放置超链接,我们也有这种方法的演示。
这里的方法是使用javascript。 window.location用于设置页面的位置,可用于跳转。
参数直接加“?” 在文件中,然后。
如果参数值为英文,则需要使用js函数进行转码。
2.b.html中的代码:
$(document).ready(function() {
var id = getURLParameter("id");
alert(id);
});
function getURLParameter(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/+/g, '%20'))||null;
}
这里,getURLParameter是自定义的js函数,用于根据参数名称获取参数值。
location.search可以获取文件名后面的参数,例如:“?id=1&name=jack”。
然后使用正则表达式来解析参数。
3.其他方法
这里演示的只是参数传递的多种形式中的一种,因为简单粗暴jquery 跳转页面页面,所以我们暂时使用它。
如果它不能满足我们的软件需求,或者存在性能问题,我们将继续寻找新的解决方案。
根据我查到的资料,页面之间的参数传递有以下几种形式:
1、将表单数据序列化,通过ajax提交到另一个页面;
2、将数据写入cookie,并在另一个页面读取cookie;
3.使用htm5新的存储机制,参见:HTML 5 Web Storage。
发表评论