Android网络视图”;未捕获的SyntaxError:意外的令牌ILLEGAL“;
Android webview "Uncaught SyntaxError: Unexpected token ILLEGAL"
在我的android程序中,我得到了一个网络视图,需要动态设置网络视图元素(文本区域、复选框等)的值。我有一个javascript方法,它从程序中接收值并执行字符串操作,并将值存储到正确的元素中。但我总是犯这个错误。。。有点被困在这里了。任何帮助都将不胜感激。
我在w3schools TryIt编辑器中成功地执行了脚本,但没有在程序中工作!
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);
我的Javascript方法为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("-!@!-") == -1) {
var queArray = new Array();
queArray =pipeSplitedArray[i].split("-@!@-");
if(document.getElementsByName(queArray[0]))
document.getElementsByName(queArray[0]).item(0).innerHTML=queArray[1];
}
}
}
值在onPageFinished加载时传递。。
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+"));");
}
}
webView,questionsArray[questionIndex]中加载的HTML内容是
<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>
onPageFinished:上传递的字符串
69_206-@!@-MyName||
我在运行应用程序时得到的错误是
11-23 14:46:59.786: I/chromium(2763): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token ILLEGAL", source: (1)
我尝试在w3schools Tryit Editor中运行该脚本,该脚本成功执行,但从未在android应用程序中执行过。。我犯了什么错?如果你能帮忙就太好了!!
提前谢谢。。
发现错误。在作为参数传递时,需要将String值放在引号中。
错误
view.loadUrl("javascript:window.HtmlViewer.injectIntoWebView(myFunction("+answerString+"));");
正确
view.loadUrl("javascript:window.HtmlViewer.injectIntoWebView(myFunction('"+answerString+"'));");
该值应在引号中,请检查myFunction('69_206-@!@-MyName||')
检查您的JavaScript文件
如果您在if语句中使用了错误的关系运算符语法。
更改=> 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();
}
});
其他检查这个你的代码:
如果你需要确保字符串不仅仅是一堆空格(我假设这是为了表单验证),你需要对空格进行替换。
str.replace(/-!!!-/g,"")
相关文章:
- jquery ajax”;SyntaxError:意外的输入结束“;基于有效的JSON
- SyntaxError:意外的标记else(我在代码中找不到错误)
- "未捕获的SyntaxError:意外的令牌ILLEGAL“;当我通过AJAX发送html时
- JavaScript-Gulp/Browserify:SyntaxError:意外的令牌
- Jquery .ajax() SyntaxError: 意外的令牌 N.
- jQuery.ajax Uncatch SyntaxError: 意外标识符
- jQuery after() uncatch SyntaxError: 意外令牌 ILLEGAL
- 为什么JSON.parse()在尝试解析一个简单的JSON对象时抛出Uncaught SyntaxError:意外的令牌
- SyntaxError:意外的COMPARE与coffeescript和涡轮链接
- 使用带有es6的文件时,服务器端SyntaxError意外标识符
- 未捕获的SyntaxError:意外的令牌},没有可见的错误
- Angular 2:SyntaxError:意外的标记<
- 未捕获的SyntaxError:意外的令牌-Can'我找不到看不见的性格
- nknown错误:Runtime.evaluate引发异常:SyntaxError:意外的令牌var
- 抛出未捕获的SyntaxError:意外的令牌)
- 获取错误SyntaxError:意外的令牌<djangojquery文件上传
- SyntaxError:意外的令牌返回
- AngularJS angular.js:12520 SyntaxError:意外的令牌ILLEGAL附属窗口
- Android网络视图”;未捕获的SyntaxError:意外的令牌ILLEGAL“;
- PHP调用脚本函数,返回值为Uncaught SyntaxError:意外的令牌ILLEGAL