javascript - 在 Android 中,如何使用 Javascript 在 WebView 中设置编辑框的值

标签 javascript android dom textbox

我了解如何使用 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/

相关文章:

javascript - React Native JSON 对象解析为 SliderBox 的 url

javascript - 如何使用 ESLint 检查 js 文件的最大行数?

javascript - 将 vuejs 组件注册拆分到不同的文件

android - 使用 viewHolder 接口(interface)更新状态到 Listview

java - Android - Java 堆栈与 native 堆栈

javascript - 如何在运行时确定标记在 DOM 元素内是否有效?

javascript - 如何从 ArrayController 访问 ItemController

android - 在 Android 项目中同时包含 Joda Time 和 Common IO 库时,APK 中复制的重复文件

PHP无效字符错误

C++ XML 解析器(速度,访问 DOM 树)