2013-09-05 22 views
6

Skrypt InSppBrowser z wtryskiem przy użyciu parametru {code: 'some code'} działa doskonale, ale nie z parametrem {file: 'local file url'}.Skrypt iniekcyjny InAppBrowser (przy użyciu executeScript)

var ref = window.open('http://apache.org', '_blank', 'location=yes'); 
ref.addEventListener('loadstop', function() { 
    ref.executeSript({file: "myscript.js"}); 
}); 

Jak zrobić wstrzyknięcie skryptu przy użyciu parametru pliku, aby wstrzyknąć mój lokalny skrypt js?

  • Czy wymaga bezwzględnej ścieżki pliku lub względnej?
  • Musi być przechowywany na stronie dziecka?

wydawać się skomplikowany tajemniczej rzeczy do zrobienia, jak mam kilka linii skryptu i nie można osadzić to wszystko za pomocą ref.executeSript({codedetails, callback: "myscript.js"});

Odpowiedz

5

miałem ten sam problem. Korzystanie z cordova3.1.0.

ref.executeScript(
    { 
     file: "http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js" 
     //webURL works fine with 'file' 
    }, function() 
    {  
     $.get("js/myscript.js", function(data) 
     { //workaround to obtain code using jQuery.get 
      ref.executeScript(
      { 
       code: data 
      }, function() 
      {  
       console.log('ref.executeScript done'); 
      }); 
     }); 
    }); 

Kiedy ustawić adres URL pliku jako webURL http: // ....,

to działało, ale nie mogłem dowiedzieć się, jak wskazują lokalnego pliku js,

tak Dostaję ciągi kodu za pomocą $ .get "js/myscript.js".

Przykładowy kod ilustruje: jQuery jest już zainstalowany w aplikacji Phonegap, a także próbuje użyć jQuery w docelowej aplikacji inAppBrowser. W razie czego.

+2

Dołączam wiersz a na początku moich aplikacji PhoneGap. (Zakładając, że strony startowej jest index.html)

'window.basePath = window.location.href.replace ('index.html', '');'

wtedy kiedy muszę I odniesienie 'basePath + 'js/handlebars/foo.js'' do ładowania skryptów i obrazów z systemu plików telefonu. – user495368

+0

Trzeba było długo czekać na rozwiązanie @Ken! –