我了解如何使用 Javascript 在 PC 上的 WebView 和浏览器中设置编辑框的值。
基本上是先找出编辑框(文本)的 ID,然后使用以下方法设置值: 在电脑上:
document.getElementById('xxxxxxxx').value = 'test'
在安卓中:
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]");
有时有效,但并非在所有情况下都有效。至少当我尝试在 webview 中设置文本框时,它不适用于以下情况:
mWebView.loadUrl("javascript: document.getElementById('xxxxxxxx').value= 'test'");
但如果您将 javascript 作为函数调用,它应该可以工作:
mWebView.loadUrl("javascript: (function() {document.getElementById('xxxxxxxx').value= 'test';}) ();" );
这解决了我的问题。希望对您有所帮助。
关于javascript - 在 Android 中,如何使用 Javascript 在 WebView 中设置编辑框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24769555/