2012-01-12 2 views
4

Phonegap으로 iPhone 앱을 프로그래밍하고 있습니다. 나는 로컬 .html.js 파일을 가지고있다. 다음은 내 index.html 파일에 있습니다 :jQuery의 .getScript() ... 내가 뭘 잘못하고 있니?

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

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

나는 연구 및 연구,하지만 내 "order.js"파일이 $.getScript 방법에 의해 호출하기 않는 이유를 바로 알아낼 수 없습니다. 어떤 아이디어? 또는이 .js 파일을 내 index.html에있는 deviceReady 함수 내에서 호출하는 다른 방법이 있습니까?

+2

deviceready 이벤트가 실행됩니까? – epignosisx

+0

'deviceready' 이벤트 발령에 대한 경고 나 이와 비슷한 경고를 설정하면, 어떤 버전의 PhoneGap에서'deviceready' 이벤트를 발생시키지 않을 수 있습니다 (API가 사용 가능하더라도). – Jasper

+0

예, deviceready가 해고 중입니다. deviceReady 아래에서 다른 플러그인을 호출했지만 .js 파일을 호출하는 방법을 모르겠습니다. –

답변

0

나를 위해 다음 솔루션은 매우 잘 작동했습니다. donefail을 처리 선택적으로

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(); 
} 
  • 가져 오기 스크립트와 :

    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"); 
    } 
    
  • 그게 전부를

    1. 로드 된 스크립트를 아약스를 사용하고 캐시 정의의 jQuery 기능을 추가 그것 :) 더 많은 정보를 찾을 수 있습니다 here.