.getScript () в jQuery ... что я делаю не так? - PullRequest
4 голосов
/ 13 января 2012

Я программирую приложение для iPhone с PhoneGap. У меня есть локальные .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 голосов
/ 19 марта 2014

Для меня следующее решение сработало очень хорошо.

  1. Добавить пользовательскую функцию jQuery, которая использует ajax и кэширует загруженный скрипт:

    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. Импорт сценариев и опционально обрабатывает done и fail:

    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");
    }
    

Вот так :) Более подробную информацию можно найти здесь .

...