无法使用javascript在android webview中设置文本
我有一个具有以下设置的webview:无法使用javascript在android webview中设置文本,javascript,android,webview,Javascript,Android,Webview,我有一个具有以下设置的webview: mView.getSettings().setLoadWithOverviewMode(true); mView.getSettings().setUseWideViewPort(false); mView.getSettings().setJavaScriptEnabled(true); mView.getSettings().setAllowContentAccess(true); mView.getSettings().setDomStorageEn
mView.getSettings().setLoadWithOverviewMode(true);
mView.getSettings().setUseWideViewPort(false);
mView.getSettings().setJavaScriptEnabled(true);
mView.getSettings().setAllowContentAccess(true);
mView.getSettings().setDomStorageEnabled(true);
加载网页后,当我尝试执行Javascript时:
mView.loadUrl("javascript:document.querySelector('input[type=password]').value ='" + password + "'");
它打开一个新选项卡或窗口,而不是设置密码字段的值
document.querySelector('input[type=password]”)的输出(从控制台):
我尝试从控制台执行相同的javascript。它起作用了
我还配置了webviewclient:
mView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(TAG, " shouldOverrideUrlLoading :" + url);
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
Log.d(TAG, "onPageStarted " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Log.e(TAG, "Error: " + description);
}
});
loadUrl
方法,在WebView中加载提供的URL。您需要做的是执行evaluateJavascript
方法
webView.evaluateJavascript("document.querySelector('input[type=password]').value ='" + password + "'", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
/// This callback is called after a result is returned by the script.
}
});
webView.evaluateJavascript(“document.querySelector('input[type=password]”)值=“+password+””,新值回调(){
@凌驾
公共无效onReceiveValue(字符串值){
///此回调在脚本返回结果后调用。
}
});
加载URL
方法,在WebView中加载提供的URL。您需要做的是执行evaluateJavascript
方法
webView.evaluateJavascript("document.querySelector('input[type=password]').value ='" + password + "'", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
/// This callback is called after a result is returned by the script.
}
});
webView.evaluateJavascript(“document.querySelector('input[type=password]”)值=“+password+””,新值回调(){
@凌驾
公共无效onReceiveValue(字符串值){
///此回调在脚本返回结果后调用。
}
});
从Android Kitkat(4.4,API级别19)开始,您可以使用
从Android Kitkat(4.4,API级别19)开始,您可以使用
您忘记了CSS选择器上的引号
应该是:
document.querySelector('input[type="password"]');
请参见您忘记了CSS选择器上的引号
应该是:
document.querySelector('input[type="password"]');
看