如何使用document.getElementsByTag和document.queryselectAll

时间:2018-04-13 11:44:03

标签: javascript google-chrome-extension getelementsbytagname offsetwidth

我正在尝试创建一个Chrome扩展程序,用于搜索网页中的任何元素。

目前我正在使用, var elm = document.getElementsByTagName(“input”);

这为我提供了标签输入的所有元素。

但有时元素在屏幕上不可见但存在于源代码中,因为如果我想过滤我尝试使用offsetwidth,left,right,height属性

elm.offsetWidth但它总是给0,所以我无法过滤掉。

这些元素也没有我可以使用的任何可见性属性。

我还有其他方法可以使用Javascript吗?

1 个答案:

答案 0 :(得分:0)

技巧是过滤element.offsetWidth !== 0 || element.offsetHeight !== 0以确定元素可见。

因此,在您的示例中,使用以下命令:

var elm = [...document.querySelectorAll('input')]
   .filter(x => x.offsetWidth !== 0 || x.offsetHeight !== 0)