如何使用 ?parameter=only 链接重新加载页面并替换 Jquery Mobile 中的当前锚页面
how to reload a page with ?parameter=only link and replace the current anchor page in Jquery Mobile?
这听起来很复杂,不是吗...其实这很容易:
我有一个多语言应用程序,更改语言需要重新加载页面。
我希望用户
a) 能够在没有 rel="external" 链接的情况下更改语言(重新启动应用程序)
b) 从任何页面执行此操作,所以我的链接将只包含语言参数 ?lang=EN
我一直在摆弄这个,也从 JQM 开发人员那里得到了一些帮助,并试图在 JQM 文档的动态页面上接近这个示例。
以下解决方案马马虎虎。请参阅下面的问题:
$(document).on( "pagebeforechange.lang", function( e, data ){
// just strings
if (typeof data.toPage === "string") {
if (data.toPage.indexOf("?lang=") > -1) {
console.log("language change")
// stop here
e.preventDefault();
e.stopPropagation();
var toUrl = $.mobile.path.parseUrl( data.toPage );
viewSwitch = toUrl.search.replace( /.*lang=/, "" ),
form = "",
service = "some_coldfusion_cfc_to_load_new_language.cfc",
method = "locale",
returnformat = "JSON",
targetUrl = toUrl.filename,
// fake submit
formdata = "form_submitted=lang&viewSwitch="+viewSwitch+"&method="+method+"&returnformat="+returnformat,
successHandler = function() {
alert("changed language successfully")
// now we changepage
$.mobile.changePage( targetUrl, {
reloadPage: true,
transition: "fade",
allowSamePageTransition: true
});
};
// send AJAX to update language server side
// page will reload on success
ajaxFormSubmit( form, service, formdata, targetUrl, successHandler );
}
}
});
还行。这行得通,但是...该页面作为新页面添加到 DOM 中(data-external-page="true",因此当我单击下一页时,该页面将被删除。
问题:
如何使这个重新加载的页面成为新的"锚点"页面 = 留在 DOM 中的页面?我可以删除数据外部页面,但我还需要做什么?设置底座?...
感谢您的任何提示!
只要
重新加载外部页面(不是多页模板的伪页面),您就可以使用 $.mobile.changePage()
轻松重新加载页面:
$.mobile.changePage('myPage.cfm?lang=EN', {
reloadPage : true
});
这将从您的服务器请求一个新页面,该页面可以用所选的任何语言输出内容,然后在 DOM 中删除此页面的当前版本,最后将新版本添加到 DOM。
reloadPage
标志的文档:http://jquerymobile.com/demos/1.1.0/docs/api/methods.html
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 如何用jquery替换字符串中可能变化的字符
- 如何用JavaScript或jQuery替换一堆标签
- Javascript/jQuery替换tamil语言输入框中的最后一个单词
- 搜索并用jQuery替换整个HTML字符串
- 用jquery替换javascript语法
- 使用 jQuery 替换 HTML
- 使用 jquery 替换缺失的月份
- jquery替换不起作用
- Jquery 替换所有文本语法正则表达式中的变量
- 如何用jQuery替换HTML标签的一部分
- 如何使用 jQuery 替换文本中的 HREF 链接
- 用 jquery 替换图像和类
- 事件在替换为 JQuery 替换与()后未触发
- 使用 jquery 替换 href 的一部分
- 用jQuery替换Django中的图像
- jquery替换DIV数据,然后跟踪对它的点击
- jQuery替换挂起chrome
- jQuery替换为并追加
- 用jQuery替换同一结构中的不同单词