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

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

[复制链接]
  • TA的每日心情
    无聊
    2022-4-23 09:48
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    4

    主题

    6

    帖子

    14

    积分

    助理工程师

    Rank: 1

    积分
    14
    发表于 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]初来乍到

    10

    主题

    355

    帖子

    433

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    433

    活跃会员热心会员突出贡献三好学生猫咪币纪念章中秋纪念章国庆纪念章

    发表于 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 

    回复

    使用道具 举报

    发表回复

    本版积分规则

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