Javascript 填写表单可以,但验证不接受字段内容
在下页: 下面几行填写了登录字段和密码字段,但当我手动或编程验证时,这些字段似乎没有填写Javascript 填写表单可以,但验证不接受字段内容,javascript,java,android,forms,fill,Javascript,Java,Android,Forms,Fill,在下页: 下面几行填写了登录字段和密码字段,但当我手动或编程验证时,这些字段似乎没有填写 webView = (WebView) findViewById(R.id.travail_activity_webview); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setSupportZoom(true); webView.getSettings().setJa
webView = (WebView) findViewById(R.id.travail_activity_webview);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) {
if (!loadingFinished) {
redirect = true;
}
loadingFinished = false;
view.loadUrl(urlNewString);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
loadingFinished = false;
}
@Override
public void onPageFinished(WebView view, String url) {
Log.e("Page finished", "url : " +url);
if(!redirect){
loadingFinished = true;
}
if(loadingFinished && !redirect){
if (!connected) {
completionIdentifiants();
connected=true;
} else if (!portailled){
accesPortail();
portailled=true;
}
} else{
redirect = false;
}
}
});
private void accesPortail() {
webView.loadUrl("https://teleservices.ac-nancy-metz.fr/login/ct_logon_vk.jsp");
}
public void completionIdentifiants() {
webView.loadUrl("javascript:var x = document.getElementById('user').value = 'mylogin';");
webView.loadUrl("javascript:var y = document.getElementById('password').value = 'mypass';");
webView.loadUrl("javascript:var z = window.document.getElementById('myform').submit();");
webView.loadUrl("javascript:alert('Test')");
}
该字段以可视方式填写,但在提交后不会获取值。
他们的内容被删除了
我尝试了很多组合,但都没有成功。这是关于你的shouldOverrideUrlLoading方法,请看一下这个Android文档:搜索shouldOverrideUrlLoading部分,你需要在这个方法中返回false。通过这行提交请求后,我签出了我的浏览器的请求,请求发送了密码:“mypass”和用户:“mylogin”作为参数。你的JS方面似乎还不错。也许是因为我的网络视图?因为即使我输入了错误登录,我也不会收到错误消息,而如果我在经典浏览器中输入错误消息,我会收到错误消息。当我直接在我的计算机的Chrome浏览器中输入这3行代码时,一切都按预期工作:授予访问权限,并且正在加载新页面。您是否提供与您的webview相关的代码片段?这条线行吗loadUrl(“javascript:alert('Test')”);也许这是因为您在“提交”之后插入了“警报”行,顺便说一句,您测试的SDK版本是什么?关于您的shouldOverrideUrlLoading方法,请查看此Android文档:并搜索shouldOverrideUrlLoading,似乎您需要在此方法中返回false。如果有帮助,请告诉我