2

我正在开发 android webapp 我正在使用 phoneGap v2.9.0 和 JQM V1.3.1 在 index.html 页面中,两个框架的初始化都成功了我能够在之后使用 JQM

 document.addEventListener("deviceready", onDeviceReady, false);

当链接到外部页面但在同一个项目中可以说contact.html这两个框架的初始化失败并且无法使用它们中的任何一个我检查了有关链接外部页面的 JQM文档JQM文档链接页面

他们解释说 JQM 中的链接过程是通过 Ajax 请求完成的 如果 Ajax 请求成功,新页面内容将添加到 DOM,这是否意味着 contact.html 中包含的所有脚本都已加载到索引页面?这意味着我可能有每个库和脚本的重复?

4

2 回答 2

3

要了解这种情况,您需要了解 jQuery Mobile 的工作原理。它使用 ajax 来加载其他页面。

第一页正常加载。它的HEADBODY被加载到 中DOM,它们在那里等待其他内容。加载第二页时,将其BODY内容加载到DOM.

这就是为什么您的按钮显示成功但单击事件不起作用的原因。HEAD在页面转换期间忽略其父级的相同单击事件。

这是官方文档:http: //jquerymobile.com/demos/1.2.0/docs/pages/page-links.html

不幸的是,您不会在他们的文档中找到此描述。以太他们认为这是一个常识,或者他们忘记像我的其他主题一样描述这个。(jQuery Mobile 文档很大,但缺少很多东西)。

  1. 将所有 JavaScript 放入第一个 HTML/ASP 文件中
  2. 将你的 JavaScript 移动到<body>; 更准确地说,将其移动到<div>with 中data-role="page"。正如我已经指出的,这是要加载的页面的唯一部分。
  3. rel="external"在页面之间切换时使用,因为它会触发整个页面刷新。基本上,您的 jQuery mobile 页面将充当普通的 Web 应用程序。

编辑:

工作示例可以在这个博客文章中找到,透明的是我的博客。

于 2013-07-02T07:17:53.290 回答
0

使用Childbrowser 插件

window.location.href="";
于 2013-07-02T06:40:24.153 回答