1

我正在创建一个使用 jQuery Mobile 的 PhoneGap 应用程序,我目前在使用 $.getScript(); 动态加载 javascript 时遇到问题;

以下失败:

$(document).on('pageinit','#index',function() {
               $.getScript("/assets/js/alert.js",function(data, textStatus, jqxhr){});
});

但是......当我通过 HTTP 调用它时......工作:

$(document).on('pageinit','#index',function() {
               $.getScript("http://testdomain.com/assets/js/alert.js",function(data, textStatus, jqxhr){});
});

Google Groups 上的以下线程是相关的,但事实证明对我来说毫无结果: https ://groups.google.com/forum/?fromgroups#!topic/phonegap/LkIN97HYX5k

理想情况下,当 jQuery mobile 引入新页面时,我需要延迟加载某些脚本文件。对于任何熟悉的人来说,新页面都不需要页眉或页脚,因为它们是动态生成的:

http://jquerymobile.com/test/docs/pages/page-scripting.html

构建 jQuery Mobile 站点时最简单的方法是在每个页面的头部引用相同的样式表和脚本集。如果您需要为特定页面加载特定脚本或样式,我们建议将逻辑绑定到 pageinit 事件(详细信息如下)以在创建特定页面时运行必要的代码(可以由其 id 属性或数字确定其他方式)。如果页面直接加载或通过 Ajax 拉入并显示,遵循这种方法将确保代码执行。

我想知道的是,首先,是否有其他人以这种方式遇到过 jQuery 的 getScript 问题,或者是否有解决方法。其次,关于动态 javascript 加载器的建议,它们将在 PhoneGap 和 jQuery mobile 的范围内工作。通过阅读,Require.js 似乎走在正确的道路上,但并不完全兼容 PhoneGap。

希望我说得通。

4

0 回答 0