Android webview 向document.getElementsByClassName(‘adm-text-area-element’) 设置数据
时间: 2024-12-13 18:28:01 浏览: 8
在Android WebView中,要向`<div class="adm-text-area-element">`这样的元素设置数据,你需要通过JavaScript API与网页进行交互。因为直接操作HTML元素可能受限于跨域策略,通常情况下,你应该在WebView中执行JavaScript来动态修改页面内容。
首先,确保你的WebView允许执行JavaScript,可以通过以下方式设置:
```java
webSettings.setJavaScriptEnabled(true); // 在初始化WebView时设置
```
然后,你可以调用以下JavaScript代码来选择并设置类名为"adm-text-area-element"的元素:
```java
// 使用WebView的addJavascriptInterface暴露一个Java对象供JavaScript访问
webView.addJavascriptInterface(new MyJavaScriptObject(), "androidBridge");
public class MyJavaScriptObject {
@JavascriptInterface
public void setData(String data) {
String jsCode = "document.getElementsByClassName('adm-text-area-element')[0].innerHTML = '" + data + "';";
webView.loadUrl("javascript:" + jsCode);
}
}
```
在这个例子中,`setData`方法会被JavaScript中的`androidBridge.setData(data)`调用,它会找到第一个匹配class为"adm-text-area-element"的元素,并设置其innerHTML属性。
请注意,`getElementsByClassName`返回的是NodeList对象,可能包含多个元素,如果只有一个,通常取索引0即可。如果有多个相同class的元素,你需要遍历它们并单独设置每个元素的内容。
阅读全文