Phonegap jqm混合本地和服务器的html文件

时间:2014-06-04 15:22:23

标签: jquery-mobile cordova

我想在应用程序中添加一些在线页面,使其保持最新,而不会发布新的商店版本。为此,我教过我可以使用jqm ajax导航来加载外部页面。 (我知道可能不允许所有平台使用。)

我已经设定:

 $.mobile.allowCrossDomainPages = true;
 $.mobile.pushStateEnabled = false;

这似乎有效,但问题是我的所有href和$ .mobile.ChangePages都必须更改为

<a href='http://mydomain.com/mypage.html'>link</a> 
$.mobile.changePage('http://mydomain.com/mypage.html');

代替

<a href='mypage.html'>link</a>
$.mobile.changePage('http://mydomain.com/mypage.html');

有没有更好的方法在本地和在线使用jqm ajax导航加载html页面?

额外信息:

  • Phonegap / Cordova版本3.5.0
  • jqm 1.3.2

1 个答案:

答案 0 :(得分:3)

为什么不使用 loadPage 方法?它会将远程页面(使用 AJAX ,就像jQuery方法加载一样)加载到 DOM 中。然后,您可以轻松使用 changePage 打开已加载的页面。

它可用于加载外部和内部内容。它不会遇到像 $。ajax 这样的跨域问题。将内容加载到 DOM 时只需要小心,如果需要的页面很大,则需要手动将其从 DOM 中删除。这只是这个解决方案的缺点(如果你愿意,我会告诉你一个例子)。

另外,你需要了解另一件事。当使用loadPage或changePage加载外部内容时,无论是加载还是远程 HTML 文件,jQuery Mobile都将首先加载 data-role =&#34; page&#34; div在远程文件中找到。它将丢弃其他一切。包括其他页面。

如果你想加载完整的内容,那么你应该使用jQuery方法加载,但要小心只加载 BODY 内容,如果你加载竞争HTML页面(包括 HEAD)它可能会变得混乱)进入现有的jQuery Mobile项目。