上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 1q23w31 - 

怎样移除addeventlistener绑定的匿名函数?百度了半天,没有b...

[复制链接]
  • TA的每日心情
    无聊
    2022-9-27 16:33
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    4

    主题

    4

    回帖

    16

    积分

    助理工程师

    积分
    16
    发表于 2022-4-23 09:40:16 | 显示全部楼层 | 阅读模式
    悬赏1油猫币已解决

    addeventlistener绑定的匿名函数,怎么移除,百度了半天,没有找到方法
    捕获.PNG捕获1.PNG
    求教

    最佳答案

    查看完整内容

    两种思路,一种是阻止所有visibilitychange事件的触发: 如果需要保留其他visibilitychange事件,就只能在document-start阶段劫持addEventListener了:
  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    860

    回帖

    1359

    积分

    荣誉开发者

    积分
    1359

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-4-23 09:40:17 | 显示全部楼层
    本帖最后由 cxxjackie 于 2022-4-24 12:14 编辑

    两种思路,一种是阻止所有visibilitychange事件的触发:
    1. document.addEventListener('visibilitychange', e => e.stopImmediatePropagation(), true);
    复制代码

    如果需要保留其他visibilitychange事件,就只能在document-start阶段劫持addEventListener了:
    1. const _addEventListener = EventTarget.prototype.addEventListener;
    2. EventTarget.prototype.addEventListener = function(type, listener) {
    3.   if (this === document && type === 'visibilitychange')) {
    4.     if (listener.toString().includes('document.visibilityState')) { //字符串可以视情况调整
    5.       return;
    6.     }
    7.   }
    8.   return _addEventListener.apply(this, arguments);
    9. }
    复制代码
    已有1人评分好评 贡献 理由
    王一之 + 1 + 1 ggnb!

    查看全部评分 总评分:好评 +1  贡献 +1 

    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表