我定义了一些webview并在其中打开了一些网页
WebView wv = (WebView) findViewById(R.id.webView1);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://mypage.com/");
我的问题是如何计算网页中链接的数量?
我的第一个想法是解析HTML代码,并计算该HTML中“href”字符串的数量,但我觉得这个解决方案很初级。有更聪明的方法吗?
<script type="text/javascript">
function countLinks()
{
var all_a = document.getElementsByTagName("a");
return all_a.length;
}
</script>
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
/** Get number of links */
public void getNumOfLinks(int numOfLinks) {
// Use the count as you like
}
}
然后将此接口添加到您的 Webview 中,当您调用它时:
WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
最后在HTML代码中获取DOM中的链接数量,并通过接口将其传递给Java代码:
<script type="text/javascript">
Android.getNumOfLinks(document.getElementsByTagName("a").length)
</script>