我了解如何在WebView和使用Javascript的PC上的浏览器中设置编辑框的值。
基本上,首先要找到编辑框的ID(文本),然后使用以下方法设置值:在PC上:
document.getElementById('xxxxxxxx').value = 'test'
在Android中:
mWebView.loadUrl("javascript: document.getElementById('xxxxxxxx').value = 'test'");
该脚本可在PC上运行,但是当我在WebView.loadUrl中调用脚本时,它将覆盖整个页面以进行“测试”。
这对我来说很奇怪,因为以下android代码可以在单选按钮上工作,但是当涉及到编辑框时,它只会失败。
mWebView.loadUrl("javascript: document.getElementById('xxxxxxxx').checked = true");
你们可以帮我分析一下可能的原因吗?非常感谢。
为了清楚起见,我正在WebViewClient.onPageFinished(WebView view,String url)中运行javascript代码。因此,应该完全加载WebView。这也很有意义,因为我可以检查单选按钮。
问题已经解决了。这是因为我在Java代码中调用javascript的方式。
像这样的代码
mWebView.loadUrl("javascript: [your javascript code]");
有时可以使用,但并非在所有情况下都可以使用。至少在以下情况下,当我尝试在Web视图中设置文本框时,它不起作用:
mWebView.loadUrl("javascript: document.getElementById('xxxxxxxx').value= 'test'");
但是如果您将javascript作为函数调用,它应该可以工作:
mWebView.loadUrl("javascript: (function() {document.getElementById('xxxxxxxx').value= 'test';}) ();" );
那解决了我的问题。希望对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句