我正在使用 jquery mobile 和 phonegap 创建一个 android 应用程序。我遵循了简短指南“Phonegap 编程的 20 个秘诀”,该指南建议使用从 index.html 上加载的自定义脚本到名为onPageLoad()
其中 Page 是目标页面的 html 文件名称的函数的回调。
但是,我被卡住了,因为我在 data-role="page" div 中包含的带有脚本标签的 javascript 没有加载。
https://stackoverflow.com/a/8838639/153382指向说这应该可以工作的 jQuery 移动指南。我已经阅读了指南,它不起作用。怎么办?
jquery mobile 有什么改变使它不再起作用吗?
更新 一些测试表明内联脚本运行,但我试图从文件加载的脚本没有评估脚本 src 属性。
也试过了<script type="text/javascript">$.getScript("js/lookup.js");</script>
。它也没有工作。
代码
common.js 包含在 index.html 之后<div data-role="page">...</div>
:
<script type="text/javascript" charset="utf-8" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/common.js"></script>
common.js相关内容:
function executeCallback() {
if (isPhoneGapReady) {
// get name of current html page
var pages = currentUrl.split("/");
var currentPage = pages[pages.length - 1].
slice(0, pages[pages.length - 1].indexOf(".html"));
// captalize the first letter and execute the function
currentPage = currentPage.charAt(0).toUpperCase() +
currentPage.slice(1);
if (typeof window['on' + currentPage + 'Load'] ==
typeof(Function)) {
window['on' + currentPage + 'Load']();
}
alert('on' + currentPage + 'Load: ' + typeof window['on' + currentPage + 'Load']);
// says onLookupLoad: undefined
}
}
$(document).bind("pageload", function(event, data) {
init(data.url);
});
window.onload = init;
init(url)
调用onDeviceReady()
哪个调用executeCallback()
lookup.html 在里面包含以下行<div data-role="page">
:
<script type="text/javascript" charset="utf-8" src="js/lookup.js"></script>