2015-10-13 6 views
5

Ich habe zwei Geräte eins mit Lollipop und eins mit Kitekat ... das mit Lollipop meldet keinen Fehler, aber wenn ich meine Anwendung versuche, erhalte ich diesen Fehler:Cordova Javascript-Fehler: hat keine Methode StartsWith Android

10-13 16:56:56.126: I/chromium(6322): [INFO:CONSOLE(99)] "Uncaught 
TypeError: Object ALIM. IL SOLE DI LOPARDO MARIANGELA has no 
method 'startsWith'", source: file:///android_asset/www/soggetti3.html (99) 

hier ist ein Teil meines javascript:

function onDeviceReady() { 

     window.rancolor=ranColor(); 

     var ricerca=localStorage.getItem('testo_ricerca'); 
     var risultati = JSON.parse(localStorage["risultati"]); 

     var ricerca1=ricerca.toString(); 
     ricerca1=ricerca1.toUpperCase(); 
     var res_match=[]; 

     var lll=risultati.length; 

     for(var r=0;r<lll;r++){ 

      var ppp0=risultati[r][1].toString(); 
      var ppp1=risultati[r][0].toString(); 
      var ppp2=risultati[r][2].toString(); 
      var ppp3=risultati[r][3].toString(); 

      ppp0=ppp0.toUpperCase(); 
      alert(ppp0); 
      alert(ricerca1); 
      var check=ppp0.startsWith(ricerca1); 

      if(check==true){ 
       res_match=res_match.concat([[ppp1,ppp0,ppp2,ppp3]]); 
      } 

     } 
     var y=res_match.length; 

, wie ich ein Array von Strings mit den Strings suchen, die mit einem anderen String beginnen suchen soll?

+0

bitte einige Code schreiben für soggetti3.html – Dilberted

+0

die Änderungen sehen, danke ... – Lorenzo

Antwort

11

Der einfachste Weg, um die startWith Funktion zu implementieren, ist unten dargestellt, dann können Sie starts in Ihrem Code verwenden:

if (typeof String.prototype.startsWith != 'function') { 
    // see below for better implementation! 
    String.prototype.startsWith = function (str){ 
    return this.indexOf(str) === 0; 
    }; 
} 
+1

Danke Mann, es funktioniert! aber ich verstehe nicht die Tatsache, dass für einige Geräte StartsWith definiert ist und für andere nicht ... der Code war der gleiche! – Lorenzo

+1

Ob StartsWith verfügbar ist, hängt von Ihrer Browser-Engine ab ... sieht so aus, als hätte der Android-Browser dies nicht in JS implementiert, aber Chrome sieht den Tab "Mobil" hier https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith –

+2

Oder verwenden Sie stattdessen 'str1.indexOf (str2) === 0' –