2012-01-12 6 views
4

Я программирую приложение iPhone с помощью Phonegap. У меня есть местные .html и .js файлов. Далее в моем index.html файле:jQuery .getScript() ... что я делаю неправильно?

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

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

Я исследовал и исследовал, но просто не могу понять, почему мой файл «order.js» не вызывался методом $.getScript. Есть идеи? Или есть ли другой способ назвать этот файл .js в функции deviceReady в моем index.html?

+2

Является ли девицерийным мероприятием? – epignosisx

+0

Устанавливайте оповещение или что-то похожее на запись события 'deviceready', у меня было время от времени, когда некоторые версии PhoneGap не запускали событие' deviceready' (хотя API-интерфейсы доступны для использования). – Jasper

+0

Да, deviceready стреляет. Я назвал другие плагины под deviceReady, но просто не знаю, как вызвать .js-файлы. –

ответ

0

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

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

Thats это:) Дополнительная информация может быть найдена here.

Смежные вопросы