javascript - 如何检测网页上的空白区域

标签 javascript jquery html

有没有一种方法可以使用 JavaScript 检测网页中没有文本或图像的空白区域?

更准确地说,如何判断点[x,y]是否在空白区域内,如下例(红色标记)

enter image description here

编辑:我想让我的问题更清楚,我正在构建一个扩展程序,它应该将搜索结果标记为trustworthyspam,我想把我的在结果项 URL 的文本末尾标记。 我也想以一种通用的方式来做,所以它不会只在谷歌网页上工作。示例如下:

google web page

最佳答案

您可以像这样测试真正的空白:

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 属性的对象。

DEMO

document.elementFromPoint(),已记录 here ,是“一项实验技术”,所以我不会把我的生命托付给它。在所有目标平台上进行全面测试。


编辑

为了全面检测您寻找的所有白色,isWhiteSpace() 将是两个阶段中的第一个。第二阶段将是 isVisualWhiteSpace(),例如使用 @remdevtec 的方法实现。

因为我的 isWhiteSpace(coords) 很便宜,所以你会先执行它,只有当它返回 false 时才进行昂贵的测试。您可以使用 ||

的保护属性
var isWhite = isWhiteSpace(coords) || isVisualWhiteSpace(coords);

但您真正的问题是编写 isVisualWhiteSpace()。我对此无能为力。

关于javascript - 如何检测网页上的空白区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34611711/

相关文章:

jquery - 无限幻灯片功能

html - 即使尚未按下按钮,如何显示弹出窗口?

javascript - 'detected rssi value' 和 'rssi that I set' 和有什么区别?

javascript - 如何获取同名的多个文本?

JavaScript 字符串仅在开头匹配与使用indexOf 比较?

javascript - 首次点击动态生成的内容时弹出窗口不显示

html - 为什么我的网站在使用所有 bootstrap 4 框架后没有响应

javascript - 包装器不随内容扩展

javascript - 如何在全日历中获取所选日期的日期

javascript - jasmine.stringMatching 方法未定义