【问题标题】:Suppress Chrome 'Failed to load resource' messages in console在控制台中抑制 Chrome 的“加载资源失败”消息
【发布时间】:2010-12-21 15:16:56
【问题描述】:

我正在编写一个脚本,它使用 XMLHttpRequest 来搜索由相对路径定义的文件,通过尝试将该相对路径与脚本知道的其他相同域绝对路径进行解析,然后尝试加载该文件从那个解析的网址。如果遇到 404,我只是尝试将文件相对路径解析为另一个绝对路径,然后重试。对于这个特定的脚本,遇到 404 完全没问题 - 但是,我的控制台到处都是“加载资源失败:服务器响应状态为 404(未找到)消息,我想禁止它们。

据我所知,没有要捕获的错误 - 错误情况由 xmlHttpRequest.onreadystatechange 处理程序处理,并且没有 window.onerror。

有没有办法抑制这些消息?

谢谢

【问题讨论】:

  • 我认为你不能使用 JavaScript。然而,开发者工具中可能有一个(隐藏的)配置
  • 在 Firebug 中也可以看到 herehere

标签: javascript google-chrome xmlhttprequest google-chrome-devtools


【解决方案1】:

此功能是在last year 引入的。你可以在这里启用它:DevTools->Settings->General->Console->Hide network messages

另请参阅 devtools 文档中的 Filtering the Console outputAdditional settings

【讨论】:

  • 有人知道是否有办法从您的 JavaScript 代码中执行此操作吗?这不会是下游机器的默认设置,问我为什么会出现“错误”,我是否能够“解决这个问题”。
【解决方案2】:

catch 块或错误处理函数中使用console.clear()。 它会在记录后立即清除控制台上的那些请求错误。

请注意

来自 MDN

请注意,在谷歌浏览器中,如果用户在设置中选择了“导航时保留日志”,console.clear() 将不起作用。

Read more about it on MDN

try {
  var req = new XMLHttpRequest();
  req.open('GET', 'https://invalidurl', false);
  req.send();
} catch(e) {
  console.clear();
}

应该记录这个

GET https://invalidurl/net::ERR_NAME_NOT_RESOLVED

但它会被清除。

【讨论】:

  • 但这会清除控制台中的所有内容,而不仅仅是 404 错误
  • @schoinh 似乎我们可以...拦截所有控制台消息...清除控制台...并实现我们想要的任何内容
猜你喜欢
  • 2022-02-25
  • 2014-03-31
  • 2015-09-07
  • 1970-01-01
  • 2011-06-21
  • 2023-03-24
  • 1970-01-01
  • 2013-05-28
相关资源
最近更新 更多