jQuery .getScript()...我做错了什么?

时间:2012-01-12 23:45:12

标签: javascript jquery cordova getscript

我正在使用Phonegap编写iPhone应用程序。我有本地.html.js个文件。以下内容位于我的index.html文件中:

function onBodyLoad() {
     document.addEventListener("deviceready", deviceReady, false);
}

function deviceReady() {
     $.getScript("js/order.js");
}

我研究和研究过,但是无法弄清楚为什么我的“order.js”文件没有被$.getScript方法调用。有任何想法吗?或者还有其他方法可以在.js中的deviceReady函数中调用此index.html文件吗?

1 个答案:

答案 0 :(得分:0)

对我来说,以下解决方案效果很好。

  1. 添加一个使用ajax的自定义jQuery函数并缓存加载的脚本:

    function init()
    {
        // Create a custom cached script importer based on ajax
        jQuery.cachedScript = function(url, options)
        {
            // Allow custom options, but dataType, cache and url are always predefined
            options = $.extend(options || {},
            {
                dataType: "script",
                cache: true,
                url: url
            });
            return jQuery.ajax(options);
        };
    
        importScripts();
    }
    
  2. 导入脚本并选择处理donefail

    function importScripts()
    {
        $.cachedScript("js/events.js")
            // Wait for the script to be loaded, before adding the listener
            .done(function()
            {
                document.addEventListener("deviceready", onDeviceReady, false);
            });
        $.cachedScript("js/navigation.js");
        $.cachedScript("js/mark.js");
    }
    
  3. 多数民众赞成:) 可以找到更多信息here