hen*_*dry 16 javascript error-handling
我有一个博客超过10年,我想在它上面运行一个Javascript来捕获断开的链接.我用的是:
function trackError(e) {
var ie = window.event || {};
var errMsg = e.message || ie.errorMessage || "404 error on " + window.location;
var errSrc = (e.filename || ie.errorUrl) + ': ' + (e.lineno || ie.errorLine);
mailme([errMsg, errSrc]);
}
// Triggering an error in the console:
// You have to use something like setTimeout(function() { notThere(); }, 0);
window.addEventListener('error', trackError, true);
Run Code Online (Sandbox Code Playgroud)
但是,这并没有以有用的方式捕捉错误.什么坏了,哪一行等
JSON.stringify错误对象的结果只是在"{"isTrusted":true}"其中无用.我在Chrome中注意到了e.path,但在Firefox中没有.有没有办法在Javascript中记录有关损坏的图像链接的有用信息,或者我需要在浏览器引擎上提交错误?
它正在发挥作用.它不会阻止错误在您的控制台中显示在Chrome中,但它正在运行.不要因为您仍然在Chrome中看到错误而感到困扰.您的代码正在执行,您可以编写您的mailme函数并执行它.我使用以下测试:
的index.html
<html>
<head>
<script src="./app.js"></script>
</head>
<body>
<img src="http://pictures.natalian.org/screenies/2004/sep/29/13:23:00/">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
app.js
var mailme = function() {
console.log('Caught!');
}
window.addEventListener('error', function(e) {
var ie = window.event || {};
var errMsg = e.message || ie.errorMessage || "404 error on " + window.location;
var errSrc = (e.filename || ie.errorUrl) + ': ' + (e.lineno || ie.errorLine);
mailme([errMsg, errSrc]);
}, true);
Run Code Online (Sandbox Code Playgroud)
输出(Chrome)
输出(Firefox)

https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers/onerror:
当资源(例如
<img>或<script>)无法加载时,会在启动加载的元素上触发使用接口Event的错误事件,并调用元素上的 onerror()处理程序.这些错误事件不会冒泡到窗口,但是(至少在Firefox中)可以使用单个捕获window.addEventListener来处理.
(突出显示我.)
所以它可能仅仅是Firefox所说的问题,对Chrome来说也不一样.
| 归档时间: |
|
| 查看次数: |
24995 次 |
| 最近记录: |