论坛上有许多主题专门讨论我的问题,但所有代码都不适用于那里。
有一个表格:
<form name="forma1">
<input type="text" name="ulogin" size="20" maxlength="50" value="login">
</form>
不适合我的代码: 代码1
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished (WebView webView, String url)
{
webView.loadUrl("javascript:document.getElementById('ulogin').value='"+username+"';");
}
});
代码2
String username = "cristian";
webview.loadUrl("javascript:document.getElementById('ulogin').value = '"+username+"';");
代码3
webView.loadUrl("javascript: {" +
"document.getElementById('ulogin').value = '"+uname +"';" +
"var frms = document.getElementsByName('forma1');" +
"frms[0].submit(); };");
但是当页面打开但是表单没有填写时,问题是什么?
答案 0 :(得分:1)
我有两点建议:
检查您的HTML - 您需要将输入元素的id
属性设置为ulogin
。
一般来说,我认为onPageFinished
是用于此的错误回调。这意味着网络资源已完成加载,而不是已加载DOM元素。因此,当您的代码运行时,ulogin
元素可能尚不存在。
您是否可以尝试在HTML文档的onload
事件中的JavaScript接口回调[1]中运行脚本?
[1] http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,java.lang.String)