谷歌浏览器如何识别网站代码的广告,被观看者通过插件禁用了?

 广告拦截器通常会阻止加载来自已知广告服务器的脚本、图片或CSS文件。谷歌浏览器如何识别网站代码的广告,被观看者通过插件禁用了?

谷歌浏览器如何识别网站代码的广告,被观看者通过插件禁用了?_第1张图片

内容检测:

  • 原理: 网站会创建一个看起来像广告的隐藏HTML元素(例如,一个div标签,其classid包含adbanner等关键词,或者其尺寸设置为常见的广告尺寸,如300x250px、728x90px等)。
  • 检测方式: 广告拦截器通常会根据其内置的过滤规则(例如EasyList)来隐藏或移除这些“诱饵”元素。网站加载后,通过JavaScript检查这些“诱饵”元素是否存在于DOM中,或者其display属性是否为nonevisibility是否为hidden。如果被隐藏或移除,则认为用户启用了广告拦截器。

使用 MutationObserver 监控 DOM 变化 这种方法可以更实时地检测DOM的变化,例如广告元素被移除或隐藏。示例:

function detectAdBlockerMutation() {
    return new Promise(resolve => {
        // 创建一个将被广告拦截器隐藏的元素
        const adBait = document.createElement('div');
        adBait.id = 'ad-bait-observer';
        adBait.className = 'ad-container banner-ad-unit';
        adBait.style.cssText = 'width:1px;height:1px;position:absolute;left:-9999px;top:-9999px;';
        document.body.appendChild(adBait);

        let adBlockDetected = false;

        const observer = new MutationObserver((mutationsList, observerInstance) => {
            for (const mutation of mutationsList) {
                // 检查是否移除了诱饵元素
                if (mutation.type === 'childList' && Array.from(mutation.removedNodes).includes(adBait)) {
                    console.log('AdBlocker检测到:MutationObserver - 诱饵元素被移除。');
                    adBlockDetected = true;
                    observerInstance.disconnect();
                    resolve(true);
                    return;
                }
                // 检查诱饵元素的样式是否被修改为隐藏
                if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
                    const computedStyle = window.getComputedStyle(adBait);
                    if (computedStyle.display === 'none' || computedStyle.visibility === 'hidden' || computedStyle.height === '0px' || computedStyle.width === '0px') {
                        console.log('AdBlocker检测到:MutationObserver - 诱饵元素样式被修改为隐藏。');
                        adBlockDetected = true;
                        observerInstance.disconnect();
                        resolve(true);
                        return;
                    }
                }
            }
        });

        // 配置观察器:观察 body 及其子元素的属性变化和子节点增删
        observer.observe(document.body, {
            attributes: true, // 观察属性变化
            childList: true,  // 观察子节点增删
            subtree: true     // 观察所有后代节点
        });

        // 设置一个超时,如果在规定时间内没有检测到变化,就假定没有广告拦截
        setTimeout(() => {
            if (!adBlockDetected) {
                observer.disconnect(); // 停止观察
                console.log('AdBlocker未检测到:MutationObserver - 未发现明显拦截迹象。');
                resolve(false);
            }
            // 清理元素,无论是否检测到
            if (document.body.contains(adBait)) {
                document.body.removeChild(adBait);
            }
        }, 500); // 500ms 延迟,给插件时间处理
    });
}

// 调用示例
window.addEventListener('load', () => {
    detectAdBlockerMutation().then(isAdBlocked => {
        if (isAdBlocked) {
            console.log('网站检测到您启用了广告拦截器(通过MutationObserver)!');
        } else {
            console.log('网站未检测到广告拦截器(通过MutationObserver)。');
        }
    });
});

  我的原创内容推荐

  视频应用

  • 保持视频二维码不变更新视频内容的教程
  • 视频二维码制作与应用的分步骤教程(职场小白也会用)
  • 如何把多个视频文件生成一个二维码(图文教程)
  • 音视频转换生成视频二维码,如何操作快速生成?
  • 视频二维码也可以做倍速观看,看教程吧

  视频二维码应用

  • 音视频转换生成视频二维码,如何操作快速生成?
  • PHP生成视频二维码代码和视频转换二维码操作教程
  • 竖式全屏形式的二维码如何制作?
  • 视频二维码有哪些方便之处,如何生成二维码?
  • 二维码不变如何更新视频内容?教程来了,手把手教程

 热门原创推荐

  • 无版权,全免费,请收藏这10个免费高清无权素材网站
  • 常用照片尺寸对照表,照片大小看这个表就OK了
  • 如何使用FTP上传文件(FTP文件传输)
  • 在线视频加密播放(加密视频观看)操作教程完整版
  • 企业公众号菜单添加视频的完整教程(组图)

AI工具类文章

  • AI应用:mijdourney 如何写prompt
  • Midjourney最基础的一些使用设置
  • Gemini 前世今生全面的信息介绍
  • AI视频成工具D-ID介绍(AI数字人常用工具)
  • Midjourney Prompt的使用基本结构介绍

视频加密/防下载/防录屏

  • 防止付费课程视频被盗被下载的五大招数
  • 企业内训视频加密防盗录全攻略
  • 视频加密的两种常见的方式数字版权管理和加密算法与应用

FFmpeg视频编码

  • 如何设置FFmpeg进行高分辨率视频转码?
  • 视频处理时的截图工具ffmpeg截图用法实例
  • FFmpeg视频编码的完整操作指南

谷歌浏览器

  • Chrome提示由贵单位管理该怎么取消?
  • 关闭谷歌更新提示“若要接收后续 google chrome 更新,您需使用 windows 10或更高版本”
  • chrome谷歌浏览器书签不同步的解决办法
  • Chrome浏览器无痕浏览真的无痕吗?
  • 关闭谷歌浏览器输入框记忆功能的方法

ThinkPad电脑

  • ThinkPad系列产品进入BIOS并设置U盘启动的详细步骤
  • 通用的ThinkPad BIOS 设置指南(精简版)

视频直播

  • 企业如何做虚拟直播(绿幕抠像直播)
  • 视频直播推流攻略(整理的各大平台推流界面)
  • OBS直播工具使用指南/OBS推送直播视频源到服务器的工具

你可能感兴趣的:(Chrome浏览器,前端,html,广告拦截器,屏蔽广告)