我想自动填充表格单元格内的数据,但不能访问它我的HTML代码如下:
<table cellspacing="1" cellpadding="1" border="1">
<tbody>
<tr>
<td class="innertd">
<table border-collapse="collapse" class="inner" id="tbl" cellspacing="2" border="1">
<thead>
<tr>
<td>Consumer No</td>
<td><input class="number-only" id="consumerNo" style="width:120px;" oratype="string;precision:254" oraerrorelement="consumerNo" tabindex="5" type="text"></td>
</tr>
</thead>
</table>
</td>
</tr>
</tbody>
Android代码如下:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(final WebView view, String url) {
super.onPageFinished(view, url);
final String consumerNumber = "1234";
final String JSSetAccountId = "javascript:" +
"document.getElementById('consumerNo').value = '" + consumerNumber + "'";
if (Build.VERSION.SDK_INT >= 19) {
view.evaluateJavascript(JSSetAccountId, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
}
});
} else {
view.loadUrl(JSSetAccountId);
}
dismissLoadingDialog();
}
}
请帮助我。
答案 0 :(得分:0)
WebView wb;
wb = (WebView) findViewById(R.id.webView1);
wb.loadUrl("file:///android_asset/web1.html");
wb.getSettings().setJavaScriptEnabled(true);
wb.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView web, String url) {
final String consumerNumber = "1234";
view.loadUrl("javascript:(function(){document.getElementById('consumerNo').value = '"+consumerNo+"';})()");
}
});
答案 1 :(得分:0)
尝试一下:
view.evaluateJavascript("javascript: " +
"var consumerNo= document.getElementById('consumerNo'); " +
"consumerNo.value = '"+consumerNo+"'; " +
"consumerNo.dispatchEvent(new Event('input')) ",null);
答案 2 :(得分:0)
我建议您看看jsoup库。它允许解析和处理从文件或URL提取的HTML。 documentation的这一部分显示了一种以HTML中的特定元素为目标的方法。 您可以删除显示的HTML,添加项目,替换项目,更改属性,它非常强大。然后,在进行所需的更改后,只需将已解析的HTML加载到WebView中即可。