我正在尝试将某个属性插入到页面上的<i>
元素中,该元素在Android WebView中加载。
应该如何运作?
例如,我在我的WebView中加载了m.facebook.com。现在我想为每个<i>
标记添加一个属性src =“mydata”。因此,在结果中我将拥有相同的页面,但每个<i>
元素现在将包含src =“mydata”(<i src="mydata"></i>
)。
我该怎么办?它甚至可能吗?
答案 0 :(得分:1)
您想要的JavaScript代码示例如下:
var i_tag = document.getElementsByTagName('i');
for (var i = 0; i < i_tag.length; i++) {
i_tag[i].setAttribute('src', 'mydata');
}
因此,您需要做的是在通过loadUrl()
final WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(webView, url);
webView.loadUrl("javascript:(function(){" +
"var i_tag = document.getElementsByTagName('i');" +
"for (var i = 0; i < i_tag.length; i++) {i_tag[i].setAttribute('src', 'mydata');}" +
"})();");
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
});
webView.loadUrl("https://m.facebook.com/");