function filter(node) {
if (node.nodeType() == 0)
{
return NodeFilter.FILTER_ACCEPT
}
else
{
alert("FILTER_SKIP ");
return NodeFilter.FILTER_SKIP
}
}var treeWalker = document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT, filter, false);我想对整个网页进行分析,找出所有鼠标可以操作的node。鼠标可以操作应该是包含Button,link,input等等这些东西吧。我想用createTreeWalker来遍历,但是我不知道这个filter如何写呢?
正常来说 你可以遍历节点 然后找NODE_ELEMENT节点(即nodeType == 1)的元素节点
如果有特定的tag要求 那么就在过滤下对应的tagName
var obj = this.form.elements[i];
if (obj.onclick) {
alert(可以操作的node);
} else {alert(不可以操作的node);
}}
<a href="http://www.google.com" target="_blank">google</a> </br>
<a href="http://www.baidu.com" target="_blank">baidu</a> </br>
<a href="http://www.163.com" target="_blank">163</a> </br>
<a href="http://www.sohu.com" target="_blank">sohu</a> </br>
<a href="http://www.sina.com.cn" target="_blank">sina</a> </br>
<script language="javascript" src="tmp.js"></script> </html>
<a href="http://www.google.com" target="_blank">google </a> </br>
<a href="http://www.baidu.com" target="_blank">baidu </a> </br>
<a href="http://www.163.com" target="_blank">163 </a> </br>
<a href="http://www.sohu.com" target="_blank">sohu </a> </br>
<a href="http://www.sina.com.cn" target="_blank">sina </a> </br>
<script language="javascript">
var a=document.getElementsByTagName("a");
alert(a.length) //5for(var i=0;i<a.length;i++){
alert(a[i].href)
}
</script> </html>
<a href="http://www.google.com" target="_blank">google </a> </br>
<a href="http://www.baidu.com" target="_blank">baidu </a> </br>
<a href="http://www.163.com" target="_blank">163 </a> </br>
<a href="http://www.sohu.com" target="_blank">sohu </a> </br>
<a href="http://www.sina.com.cn" target="_blank">sina </a> </br>
<script language="javascript">
var a=document.getElementsByTagName("*");
alert(a.length) //5 for(var i=0;i <a.length;i++){
if(a[i].tagName=="A"){
alert(a[i].href)
}
}
</script> </html>
如果要判断div,可以if(a[i].tagName=="DIV")
if(a[i].tagName=="INPUT"){
//输入框
if(a[i].type=="TEXT")
//按钮
if(a[i].type=="BUTTON" || a[i].type=="SUBMIT")
}