In meinem Android-Programm habe ich eine Webansicht und brauchen Werte auf die Webansicht Elemente (Textfelder, Kontrollkästchen usw.) dynamisch einzustellen. Ich habe eine JavaScript-Methode, die Werte aus dem Programm empfängt und Zeichenfolgenoperationen ausführt und die Werte im richtigen Element speichert. Aber ich bekomme diese Fehlermeldung immer ... irgendwie hier fest. Jede Hilfe wird geschätzt.Android webview „Uncaught Syntaxerror: unerwartetes Token ILLEGAL“
ich erfolgreich ausgeführt das Skript in den w3schools Tryit Editor, aber im Programm nicht funktioniert!
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 Werte für die Textfelder in den webView
function myFunction(var_)
{
var str = var_.replace("-!!!-","");
var pipeSplitedArray = str.split("||");
for(var i=0; i<pipeSplitedArray.length-1; i++) {
if(pipeSplitedArray[i].indexOf("[email protected]!-") == -1) {
var queArray = new Array();
queArray =pipeSplitedArray[i].split("[email protected][email protected]");
if(document.getElementsByName(queArray[0]))
document.getElementsByName(queArray[0]).item(0).innerHTML=queArray[1];
}
}
}
Werte auf onPageFinished Läden übergeben werden, setzen ..
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(\"[email protected]!-\") == -1) { var queArray = new Array(); queArray =pipeSplitedArray[i].split(\"[email protected][email protected]\"); 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+"));");
}
}
den HTML-Inhalt in der webView geladen, questionsArray [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 auf onPageFinished geben:
[email protected][email protected]||
Die Fehler, die ich alle Zeit erhalten, während meine Anwendung läuft
ist11-23 14:46:59.786: I/chromium(2763): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token ILLEGAL", source: (1)
ich das Skript in den w3schools Tryit Editor ausgeführt wird versucht, und das Skript erfolgreich ausgeführt, aber nie in der android-Anwendung .. was ist mein Fehler? Wäre toll wenn du helfen kannst !!
Vielen Dank im Voraus ..
was brauchen sollten Zeichenfolge von Javascript zu ersetzen. – codercat
str.replace ("/ - !!!-/"," ") check this – codercat
was du ersetzen willst leer entweder null – codercat