有没有一种方法可以使用 JavaScript 检测网页中没有文本或图像的空白区域?
更准确地说,如何判断点[x,y]是否在空白区域内,如下例(红色标记)
编辑:我想让我的问题更清楚,我正在构建一个扩展程序,它应该将搜索结果标记为trustworthy 或spam,我想把我的在结果项 URL 的文本末尾标记。 我也想以一种通用的方式来做,所以它不会只在谷歌网页上工作。示例如下:
最佳答案
您可以像这样测试真正的空白:
function isWhiteSpace(coords) {
var element = document.elementFromPoint(coords.x, coords.y);
var whitespace = $(document).add("body, html");
return (whitespace.get().indexOf(element) > -1) ? true : false;
}
其中 coords
是具有 .x
和 .y
属性的对象。
document.elementFromPoint()
,已记录 here ,是“一项实验技术”,所以我不会把我的生命托付给它。在所有目标平台上进行全面测试。
编辑
为了全面检测您寻找的所有白色,isWhiteSpace()
将是两个阶段中的第一个。第二阶段将是 isVisualWhiteSpace()
,例如使用 @remdevtec 的方法实现。
因为我的 isWhiteSpace(coords)
很便宜,所以你会先执行它,只有当它返回 false 时才进行昂贵的测试。您可以使用 ||
var isWhite = isWhiteSpace(coords) || isVisualWhiteSpace(coords);
但您真正的问题是编写 isVisualWhiteSpace()
。我对此无能为力。
关于javascript - 如何检测网页上的空白区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34611711/