1

我正在使用 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>
4

1 回答 1

1

似乎问题在于 Eclipse 没有生成新的 apk。我猜这是因为 assets 目录发生了变化,但 src 目录没有。如果我删除 bin 文件夹中的 apk 并运行模拟器,我的代码将按设计工作。

于 2012-05-21T13:50:00.037 回答