【问题标题】:Stop browser from sending certain JavaScript events阻止浏览器发送某些 JavaScript 事件
【发布时间】:2018-11-02 16:50:12
【问题描述】:

有一个网站会在标签模糊时触发功能。我不希望这种情况发生。
有没有办法阻止 javascript 触发 window.onBlur 事件?
从最初的搜索中,我得出的结论是,我需要覆盖 javascript 的默认函数,这可以使用 userscript managers 来完成,例如 Greesemonkey
我在Greesemonkey 中尝试了以下脚本:
window.onblur = null
这似乎没有任何效果,并且网页的行为与以前相同。

【问题讨论】:

  • 如果只适合你,你可以在 devtools 中设置事件断点。您还可以在 devtools 中编辑 js,一旦您在代码中找到事件处理程序,就可以从补丁中运行该站点。
  • 您拒绝了用户脚本管理器,但没有解释为什么您无法使用它们,而这是您应该使用的解决方案。如果没有某种允许您注入脚本的插件,您将无法编辑任意页面的脚本。
  • @meagar:chrome 让你在 devtool 的源选项卡中做到这一点。自 67 年以来的新 iirc
  • @meagar 问题的语言不够清楚。我也不知道如何使用用户脚本管理器来做到这一点。请查看已编辑的问题。
  • 没有。如果没有扩展名,就不可能(自动)执行此操作。您必须使用 Tampermonkey 或编写自己的扩展程序。该问题还需要minimal reproducible example 和/或指向目标页面的链接。

标签: javascript google-chrome userscripts onblur


【解决方案1】:

看看Event.preventDefault()Event.stopPropagation() 是否对您有帮助。

如果您想覆盖在事件中调用的函数,您可以简单地重新定义它并使用脚本管理器插入它。例如:

var originalCallbackFunction = callbackFuntion;
callbackFunction = function() {    // Redefinition
    /* Do something else */
}

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 2019-11-09
    • 2013-06-28
    • 1970-01-01
    • 2022-01-21
    • 2013-07-03
    • 2015-12-18
    • 2021-08-06
    • 2013-09-17
    相关资源
    最近更新 更多