javascript - 在页面上显示 JavaScript 控制台错误

标签 javascript dom console.log

假设我有以下代码:

<script>

    function billy() {
        alert('muahahahaha!');
    }

    function suzzy() {
        return;
    }

</script>

还有一个像这样的按钮(带有未定义的 onclick 处理程序):

<input type='button' value='click me' onClick='FRANK()' />

当我单击该按钮时,开发者控制台中会显示以下内容:

Function 'FRANK()' is not defined.

如何将该消息存储在变量中并将其显示在页面上?

document.getElementById('prompt').innerHTML = log;

所以它会显示为:

<div id='prompt'>
    Function 'FRANK()' has not been defined.
</div>

最佳答案

如果你想在你的div中显示页面的任何错误,你可以使用global event handler onerror :

window.onerror = function(e){
  document.getElementById('prompt').innerHTML = e.toString();
}

Demonstration

<小时/>

如果您的目标是拦截浏览器在控制台中写入的所有内容,而不仅仅是错误,我不确定这是否直接可能,因为浏览器不使用可访问的控制台功能适用于一切。

但是您可以通过 Hook 所有全局事件处理程序来做很多事情:

Demonstration

关于javascript - 在页面上显示 JavaScript 控制台错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23881716/

相关文章:

javascript - Bootstrap 按钮链接不起作用

asp.net - 如何强制在成功函数中完成的 DOM 修改保留在 jQuery.Ajax() 调用中?

javascript - Vanilla JS,尝试访问数组中的对象

javascript - Jquery 返回对象而不是选择器元素

javascript - 如何使用消息正确抽象 console.log 颜色变量

javascript - JavaScript 中的事件监听器

javascript - 使用显示 : flex; 为菜单设置动画

javascript - 单独的 js 文件中的 getElementById 找不到 ASP.net 控件

javascript - 如何从 document.querySelectorAll() 正确循环遍历 NodeList?

Javascript DOM 通过用户类型识别节点?