2013-09-05 3 views
6

InAppBrowser js Skripte Injektion mit {code: 'some code'} param funktioniert perfekt, aber nicht mit {file: 'local file url'} param.InAppBrowser inject script (unter Verwendung von executeScript)

Wie gehe ich über das Injizieren von Skript mit der Datei param, um mein lokales js-Skript zu injizieren?

  • erfordert es absolute Dateipfad oder relativ?
  • Muss die Datei auf der Child-Website gehostet werden?

Es ist wie eine geheimnisvolle komplizierte Sache zu tun scheinen, wie ich ein paar Zeilen Skript haben und kann es nicht einbetten alle mit ref.executeSript({codedetails, callback: "myscript.js"});

Antwort

5

ich hatte das gleiche Problem. Verwenden von 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'); 
      }); 
     }); 
    }); 

Wenn ich die Datei-URL gesetzt, wie WebUrl http: // ....,

es funktionierte, aber ich kann nicht herausfinden, wie die lokale js-Datei zu verweisen,

so Ich erhalte Code-Strings mit $ .get "js/myscript.js".

Der Beispielcode veranschaulicht: jQuery ist bereits in der phonegap-App installiert und versucht auch, jQuery für das Ziel in der AppAppBrowser-App zu verwenden. Nur für den Fall.

+2

Ich schließe eine Zeile ein folgt am Anfang meiner PhoneGap-Apps. (Die Startseite unter der Annahme index.html)

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

Dann, wenn ich mich brauche referenzieren Sie 'basePath + 'js/lenker/foo.js', um Skripte und Bilder aus dem Dateisystem des Telefons zu laden. – user495368

+0

Es muss lange gedauert haben, um diese Lösung @Ken herauszufinden! –