我正在使用jquery mobile和phonegap来创建一个Android应用程序。我遵循了简短的指南“20 Recipes for Programming Phonegap”,它建议使用从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>
。它也没用。
码
在<div data-role="page">...</div>
之后的index.html中包含的common.js:
<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>
答案 0 :(得分:1)
似乎问题是Eclipse没有生成新的apk。我想这是因为资产目录已更改,但src目录没有。如果我删除bin文件夹中的apk并运行模拟器,我的代码按设计工作。