如何在angular中触发window.onerror?

How to trigger window.onerror in angular?

我知道还有很多关于此主题的其他帖子,但我仍然无法正常工作。 我在我的项目中使用 Angular 8,我想将浏览器控制台消息发送到服务器日志文件。 有人可以请 clearifiy 为我做问题吗:

  1. window.onerror 何时触发? - 知道我把函数放在构造函数中,这样可以吗? 如果我在本地服务项目,它会被触发吗?
  window.onerror = function (errorMsg, url, lineNumber) {
      alert(errorMsg + ' ' + lineNumber);
    };
  1. 我需要做什么才能触发它? (或者例如丢失证书的抛出错误 - 触发此功能?)

console.error('test') - does this trigger it?

throw new Error() - or this?

  1. 像CORS这样的Console-Errors会触发这个函数吗?
  2. 我还了解到,如果 img 或脚本源不可用,它就会被触发。

app.compentent.html: <img src="test.png">

app.copmentent.ts in the constructor (the code of point one)

但我仍然没有收到要显示的警报。

我很感激任何帮助 - 谢谢

我试过用你的代码触发错误函数

window.onerror = function (errorMsg, url, lineNumber) {
      alert(errorMsg + ' ' + lineNumber);
    };


callingnonexistancefunction()

调用不存在的函数时触发

希望你能得到一些参考

以下可能对您有用。我在一些 Vue.js 代码中使用它来测试触发 window.onerror()。使用 eval() 应该允许您绕过 Angular 的编译时检查并将其放入 window.onload() 将确保在页面加载后对其进行评估。

window.onerror = function (message, source, lineno, colno, error) {
  alert('onerror called: ' + message);
}

window.onload = function () {
  eval('undefined_function()');
}

作为安全注意事项,请勿在生产中使用 eval(),尤其是当用户输入可能接近它时。