爱奇艺 PC 网页端 播放广告时,是怎么检测到我把它放到了后台的?

2020-11-08 20:12:35 +08:00
 thefack

环境是 Windows10 20h2,用的 Chrome 86,已经暂停了广告拦截器扩展

当网页不可见时,广告倒计时就停止减 1 了(虽然声音表示广告暂时还在继续,但是播放几秒后就不继续播放广告了,切回去,视频区域为黑屏状态)

然后我用扩展想屏蔽对网页可见性的检测,但是没有效果。请问还有什么原因吗?

扩展的的主要代码:

!function () {
  // 需在 网页 js 环境中运行的代码
  let code = function () {
    // visibilityState 、hidden 状态
    Object.defineProperty(document, 'visibilityState', {
      configurable: false,
      writable: false,
      value: 'visible',
    });

    Object.defineProperty(document, 'hidden', {
      configurable: false,
      writable: false,
      value: false,
    });

	// 拦截检测可行性的事件
    for (let eventName of ["visibilitychange", "webkitvisibilitychange"]) {
      window.addEventListener(eventName, function handle(e) {
        e.stopImmediatePropagation();
        e.preventDefault();
      }, true);
    }
  };

  // 嵌入 js 代码
  let script = document.createElement('script');
  script.textContent = '(' + code + ')()';
  (document.head || document.documentElement).appendChild(script);
  script.remove();
}();
1093 次点击
所在节点    问与答
5 条回复
greed1is9good
2020-11-08 22:04:36 +08:00
不用后台,失去焦点就停了吧
hfJ433
2020-11-08 22:08:27 +08:00
芒果视频点击暂停视频就会自动变成广告画面,恶心的不行。
ysc3839
2020-11-08 22:11:56 +08:00
onblur?
happylty
2020-11-08 23:23:08 +08:00
焦点检测
thefack
2020-11-09 01:16:00 +08:00
@greed1is9good
@hfJ433
@ysc3839
@happylty
谢谢大家,我扩展的问题,已解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/722968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX