Android webview "Uncaught SyntaxError: Unerwartetes Token ILLEGAL"

In meinem Android-Programm habe ich ein Webview und muss Werte auf die Webview-Elemente (Textareas, Checkboxen etc.) dynamisch setzen. Ich habe eine Javascript-Methode, die Werte aus dem Programm empfängt und String-Operationen ausführt und die Werte auf das richtige Element speichert. Aber ich bekomme diesen Fehler immer … irgendwie hier stecken Jede Hilfe wird geschätzt.

Ich habe das Skript erfolgreich im w3schools TryIt Editor ausgeführt, aber nicht im Programm!

  • Wie beendet man jede Aktivität auf dem Stapel außer dem ersten in Android
  • Android Studio 2.2 Gradle Update schlägt fehl
  • Kann Emulator ohne HAXM im Android-Studio ausführen?
  • Text auf der Bitmap fehlgeschlagen
  • Prüfen Sie, ob Kopfhörer angeschlossen sind
  • So ändern Sie die Fortschrittsfarbe des Fortschrittsbalgs in Android
  • final WebView webView = new WebView(getApplicationContext()); LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT, 1); webView.setLayoutParams(params); webView.setBackgroundColor(Color.LTGRAY); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setDomStorageEnabled(true); webView.setWebChromeClient(new android.webkit.WebChromeClient()); webView.setWebViewClient(new WebChromeClient()); webView.loadData("<!DOCTYPE html><html><body>"+ questionsArray[questionIndex] +"</body></html>", "text/html", "UTF-8"); webView.addJavascriptInterface(javaScriptInterface, "HtmlViewer"); scrolRootLayout.addView(surveyWebView); 

    Und meine Javascript-Methode, um Werte für die Textbereiche im WebView festzulegen

     function myFunction(var_) { var str = var_.replace("-!!!-",""); var pipeSplitedArray = str.split("||"); for(var i=0; i<pipeSplitedArray.length-1; i++) { if(pipeSplitedArray[i].indexOf("-!@!-") == -1) { var queArray = new Array(); queArray =pipeSplitedArray[i].split("-@!@-"); if(document.getElementsByName(queArray[0])) document.getElementsByName(queArray[0]).item(0).innerHTML=queArray[1]; } } } 

    Werte werden weitergeleitet.

      private class WebChromeClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { String script = "javascript:function myFunction(var_) { var pipeSplitedArray = var_.split(\"\\|\\|\"); for(var i=0; i<pipeSplitedArray.length-1; i++) { if(pipeSplitedArray[i].indexOf(\"-!@!-\") == -1) { var queArray = new Array(); queArray =pipeSplitedArray[i].split(\"-@!@-\"); if(document.getElementsByName(queArray[0])) document.getElementsByName(queArray[0]).item(0).innerHTML=queArray[1]; } } }"; view.loadUrl(script); view.loadUrl("javascript:window.HtmlViewer.injectIntoWebView(myFunction("+answerString+"));"); } } 

    Der HTML-Inhalt, der in das WebView geladen wird, fragtArray [questionIndex] ist

     <div class="newmain5 norma12" style="position:relative;width:320px;"> Enter your name :</div> <div class="newmain6" style="position:relative;width:275px;left:10px;"> <textarea name="69_206" id="1" rows="5" cols="30" style="font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#666666; width:260px; border:1px solid #CCCCCC; background-color:#EBEBEB;" /> </textarea> </div> 

    String weitergegeben auf PageFinished:

     69_206-@!@-MyName|| 

    Der Fehler bekomme ich alle Zeit beim Ausführen meiner Anwendung ist

     11-23 14:46:59.786: I/chromium(2763): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token ILLEGAL", source: (1) 

    Ich habe versucht, das Skript in der w3schools Tryit Editor und das Skript ist erfolgreich ausgeführt, aber nie in der Android-Anwendung .. Was ist mein Fehler? Wäre toll wenn du helfen kannst !!

    Danke im Voraus..

  • Wie kann man die Bildschirmrotation mit einem ViewPager und verschachtelten Fragmenten richtig behandeln?
  • Fragment ersetzt noch sichtbar auf Hintergrund
  • Analysieren einer XML-HttpResponse
  • Elevation funktioniert nicht für ImageView
  • VORSCHAU - Google Nexus 5X - 6.0.0 (API 23) Gapps
  • Android Styles für verschiedene Bildschirme anwenden
  • 2 Solutions collect form web for “Android webview "Uncaught SyntaxError: Unerwartetes Token ILLEGAL"”

    Fand den Fehler. Sie müssen den String-Wert in Anführungszeichen setzen, während Sie als Parameter übergeben.

    Falsch

     view.loadUrl("javascript:window.HtmlViewer.injectIntoWebView(myFunction("+answerString+"));"); 

    Richtig

     view.loadUrl("javascript:window.HtmlViewer.injectIntoWebView(myFunction('"+answerString+"'));"); 

    Der Wert sollte in Anführungszeichen stehen, check myFunction('69_206-@!@-MyName||')

    Überprüfe deine JavaScript-Datei

    Wenn du falsche Syntax von relationalen Operator in if-Anweisung hast.

    Ändern => to >= and =< to <=

     $('#search').bind('keydown', function() { tmp = Number(event.keyCode); if ((tmp <= "48" && tmp >= "90") || (tmp <= "96" && tmp >= "111") || (tmp <= "186" && tmp >= "222")) { showSearching(); } });​ 

    Andere überprüfen Sie dies Ihren Code:

    Wenn Sie sicherstellen müssen, dass die Saite nicht nur ein paar leere Räume ist (ich gehe davon aus, dass dies für die Formularvalidierung ist), müssen Sie einen Ersatz auf den Räumen machen.

     str.replace(/-!!!-/g,"") 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.