页面特定脚本未加载jquery mobile

时间:2012-05-20 21:47:02

标签: jquery-mobile cordova

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

1 个答案:

答案 0 :(得分:1)

似乎问题是Eclipse没有生成新的apk。我想这是因为资产目录已更改,但src目录没有。如果我删除bin文件夹中的apk并运行模拟器,我的代码按设计工作。