filters

通过配置 filters 属性,用户可以过滤掉一些不需要捕获的错误,比如Script error.

  • 使用init方法配置(推荐)

插件版本 >= 2.0.0

  1. fundebug.init({
  2. filters : [
  3. {
  4. message: /^Script error\.$/
  5. }
  6. ]
  7. })
  • 通过fundebug配置
  1. if ("fundebug" in window) {
  2. fundebug.filters = [
  3. {
  4. message: /^Script error\.$/
  5. }
  6. ];
  7. }

配置规则

filters 属性有以下特点:

  • 它是一个数组,数组中的元素为过滤规则,当错误符合数组中任意一条过滤规则时,则会被过滤
  • 过滤规则是 JavaScript 对象,该对象的 Key 为错误的属性名,Value 为正则表达式(唯一的特例是”inexistence”);
  • 当错误的属性匹配对应正则表达式时,则会被过滤;
  • 当过滤规则的属性值为”inexistence”时,则会过滤某个属性不存在的错误;

示例

示例 1:过滤 name 为 ReferenceError 的错误

  1. fundebug.filters = [
  2. {
  3. name: /^ReferenceError$/
  4. }
  5. ];

示例 2:过滤 name 为 ReferenceError,且 message 中含 aler 的错误

  1. fundebug.filters = [
  2. {
  3. name: /^ReferenceError$/,
  4. message: /aler/
  5. }
  6. ];

示例 3:过滤 method 为 GET,且 status 为 401 的错误

  1. fundebug.filters = [
  2. {
  3. req: {
  4. method: /^GET$/
  5. },
  6. res: {
  7. status: /^401$/
  8. }
  9. }
  10. ];

示例 4:过滤特定域名的资源加载错误

  1. fundebug.filters = [
  2. {
  3. target: {
  4. src: /example.com/
  5. }
  6. }
  7. ];

示例 5:过滤 status 不存在的图片加载错误

  1. fundebug.filters = [
  2. {
  3. target: {
  4. tagName: /^IMG$/,
  5. status: "inexistence"
  6. }
  7. }
  8. ];

示例 6:配置多条过滤规则

  1. fundebug.filters = [
  2. {
  3. message: /^Script error\.$/
  4. },
  5. {
  6. req: {
  7. method: /^GET$/
  8. },
  9. res: {
  10. status: /^401$/
  11. }
  12. }
  13. ];

示例 7:只监控特定域名的报错

只监控域名为 a.com 或者 b.com 的报错

  1. fundebug.filters = [
  2. {
  3. url: /^((?!(a\.com|b\.com)).)*$/
  4. }
  5. ];

不同类型的错误的属性略有不同,具体可以查看JavaScript 执行错误资源加载错误以及HTTP 请求错误

常见错误过滤

Script error.

  1. fundebug.filters = [
  2. {
  3. message: /Script error/
  4. }
  5. ];

WeixinJSBridge is not defined

  1. fundebug.filters = [
  2. {
  3. message: /WeixinJSBridge is not defined/
  4. }
  5. ];