是否可以阻止 javascript 知道窗口/文档是否有焦点?

Is it possible to stop javascript from knowing if window/document has focus?

提问人:flen 提问时间:6/25/2022 最后编辑:flen 更新时间:7/6/2022 访问量:580

问:

如果一个网站从一个选项卡移动到另一个选项卡,则某些网站将停止工作(例如,播放音乐)。问题:客户是否有可能停止这种行为?

有多种方法可以检查当前浏览器选项卡是否处于焦点状态。例如,可以使用 或 。or 事件不可取消,因此不起作用。但是有没有其他方法可以阻止它们的传播呢?(例如,一个插件可以破坏事件的工作方式而不让它分派吗?document.hasFocus()window.addEventListener('focus', function)visibilitychangeblurEvent.stopPropagationblur

或者有没有办法通过 JS 控制台模拟具有焦点的选项卡?例如,通过在 Web 控制台中切换复选框,还是在选项卡失去焦点后不断重新触发事件?(或者也许 tampermonkey force 可以将只读始终设置为?focusdocument.visibilityStatevisible


关于正在关闭的问题:这个问题与“有没有办法检测浏览器窗口当前是否处于活动状态?”不同,它是从相反的方向提出的:这个问题问的是如何检测焦点的变化,这个问题问的是如何避免这种检测

JavaScript 失焦

评论

2赞 Bergi 6/25/2022
是的,这是可能的,但首先你需要找出页面使用哪种机制来检测焦点(有几个)。
2赞 Samathingamajig 6/25/2022
对于一个简单的解决方案,您可以尝试创建一个 tampermonkey 脚本,该脚本在第一个参数是 do not actually register a listener 时进行并覆盖。document.hasFocus = () => true;window.AddEventListener"focus"
1赞 Samathingamajig 6/25/2022
@dippas 不,这与这里提出的问题完全相反
0赞 dippas 6/25/2022
stackoverflow.com/questions/7389328/......
0赞 BGPHiJACK 6/25/2022
是的,您不希望执行此操作的网站,您可以编写一个简单的脚本并通过控制台或 tampermonkey 之类的东西注入。

答: 暂无答案