document.location.href = ‘#位置’; 与$ .mobile.changePage(’#position’);

这两个重新划分有什么区别? 我有一个应用程序,当我使用时,它在chrome和android 4上正常工作,但不在android 2.xx上

document.location.href='#location'; 

但是当我使用时

 $.mobile.changePage('#location'); 

它在chrome和android中都无法正常工作。 Redirrection似乎发生了,但之后立即跳转到我的应用程序的索引页面。

$.mobile.changePage是用于导航的jQM样式方法。 这意味着如果启用了AJAX导航(默认情况下已启用),则链接到的页面将异步获取并注入当前页面的DOM。

这是通过获取目标页面,扫描它以获取jQM页面(带有data-role='page'容器元素),将该元素注入当前DOM并显示它,同时隐藏以前的内容来完成的。

查看jQuery Mobile文档以获取更多详细信息。

确保这一点

  • 您的目标页面有一个jQuery Mobile页面
  • 目标页面由jQM获取(使用Fiddler或类似工具)
  • 它存在于当前页面的DOM中

您也可能决定禁用AJAX导航(在开发移动应用程序时这是错误的想法)。 这是通过在mobileinit处理程序ajaxEnabled设置为false来完成的。 有关更多详细信息,请查看jQM配置文档 。 在页面中包含jquery-mobile.js之前,请确保已执行mobileinit挂钩。

试试这个:

 $.mobile.changePage( "#location", { transition: "pop", reverse: false, changeHash: false }); 

jQuery Mobile在$ .mobile对象上公开了几个方法和属性,以便在您的应用程序中使用。

在使用$.mobile.changepage之前确保文档已准备就绪,否则它将无法正常工作。 如果您在给定页面上的某个事件之后使用自动重定向到其他页面,这将是一个问题。

  $(document).ready(function(){ $.mobile.changepage('xyz.html'); } 

试试这个:

  webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if(//url filtering){ view.loadUrl(url); } return true; } });