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

油猴如何根据console上的错误信息,运行某方法

[复制链接]
  • TA的每日心情

    2024-11-10 11:37
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    2

    主题

    13

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-10-18 18:30:07 | 显示全部楼层 | 阅读模式

    各位大佬,我在写油猴脚本时,偶尔会出现由于服务器卡顿导致爆出错误,脚本卡住不往下执行的情况。故我打算根据常出现的error信息进行进一步处理。但无论我用unsafeWindow.listener还是window.listener,都无法触发控制台我模拟扔出的error。这是为什么?以下是脚本信息。

    // ==UserScript==
    // @name         错误捕获脚本
    // @namespace    http://tampermonkey.net/
    // @version      1.0
    // @description  当错误信息包含“mute”时,输出“test success”
    // @author       你
    // @match        *://*/*
    // @grant        unsafeWindow
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        // 添加错误监听器到 unsafeWindow
        unsafeWindow.addEventListener('error', function(event) {
            // 检查错误信息是否包含“mute”
            if (event.message && event.message.includes('404')) {
                // 如果包含,则在控制台输出信息
                console.log('test success');
            }
        });
    })();
    

    我试过用在控制台用如下代码扔出错误。

    fetch('https://example.com/nonexistent-resource')
      .then(response => {
        if (!response.ok) {
          throw new Error('Network response was not ok');
        }
        return response.json();
      })
      .catch(error => {
        console.error('404', error);
      });

    还试过在控制台输入

    // 在控制台中抛出一个错误
    throw new Error('404');

    控制台都没有反应,下断点也不运行listener内的内容。为什么呢??总感觉某个点没注意到。

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-10-19 11:26:39 | 显示全部楼层
    控制台无法触发是因为环境不同,控制台抛出的错误印象里不会在网页的callback触发
    哥哥前边那一个问题像是异步触发错误无法接收到导致的感觉
    但是我对这方面没研究帮不到哥哥....
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    2024-11-10 11:37
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    2

    主题

    13

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-10-19 13:49:24 | 显示全部楼层
    李恒道 发表于 2024-10-19 11:26
    控制台无法触发是因为环境不同,控制台抛出的错误印象里不会在网页的callback触发
    哥哥前边那一个问题像是 ...

    那我想实现控制台错误用油猴脚本处理,如何实现呢?
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-10-19 14:13:56 | 显示全部楼层
    repisal 发表于 2024-10-19 13:49
    那我想实现控制台错误用油猴脚本处理,如何实现呢?

    理论上来说感觉没办法
    除非tryCatch包裹一下然后由油猴进行回调
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情

    2024-11-10 11:37
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    2

    主题

    13

    回帖

    18

    积分

    助理工程师

    积分
    18
    发表于 2024-10-20 03:54:50 | 显示全部楼层
    李恒道 发表于 2024-10-19 11:26
    控制台无法触发是因为环境不同,控制台抛出的错误印象里不会在网页的callback触发
    哥哥前边那一个问题像是 ...

    他自己的网页有问题。不开脚本的情况下,都能报错。报几个404 resource的错误,某一个错误之后网页就直接卡住不能动了。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-10-20 11:05:05 | 显示全部楼层
    repisal 发表于 2024-10-20 03:54
    他自己的网页有问题。不开脚本的情况下,都能报错。报几个404 resource的错误,某一个错误之后网页就直接 ...

    我明天想一下哥哥
    今天有点事
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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