在自定义控制台打印 javascript 错误
Print javascript error in custom console
我有一个没有任何控制台的浏览器。
我需要将输出重定向到我自制的控制台。
有办法实现吗?
如果您只是想捕获错误,其中一些 将转到 window.onerror
handler。
window.onerror = function(errorMsg, url, lineNumber) {
// ...do something with the information...
// Return false if you want to prevent the browser's default behavior
return false;
};
您可以创建非常简单的自定义 "console",只需几行 HTML 和 javascript。例如:
var xConsole = {
log: function(msg) {
var output = '<div>' + msg + '</div>';
document.getElementById('console').insertAdjacentHTML('beforeend', output);
}
};
xConsole.log('test');
xConsole.log(new Date().getTime());
<pre id="console"></pre>
然后您需要将此 HTML 行放在文档中的某处(或动态附加)。您还可以使用一些 CSS 来设置样式或根据需要放置它。
UPD。每条评论改进 T.J。拥挤。这是可能的非常基本的解决方案,它也支持错误捕获:
// uncomment below line and remove "if (true) {" when used in real world
//if (!window.console) {
if (true) {
window.console = function() {
var _ = {};
_.log = function(msg) {
var output = '<div>' + msg + '</div>';
document.getElementById('console').insertAdjacentHTML('beforeend', output);
};
window.onerror = function(errorMsg) {
_.log(errorMsg);
};
return _;
}();
}
// Should log simple message
console.log('test message');
// Should log reference error
test + 1;
<pre id="console"></pre>
我有一个没有任何控制台的浏览器。 我需要将输出重定向到我自制的控制台。
有办法实现吗?
如果您只是想捕获错误,其中一些 将转到 window.onerror
handler。
window.onerror = function(errorMsg, url, lineNumber) {
// ...do something with the information...
// Return false if you want to prevent the browser's default behavior
return false;
};
您可以创建非常简单的自定义 "console",只需几行 HTML 和 javascript。例如:
var xConsole = {
log: function(msg) {
var output = '<div>' + msg + '</div>';
document.getElementById('console').insertAdjacentHTML('beforeend', output);
}
};
xConsole.log('test');
xConsole.log(new Date().getTime());
<pre id="console"></pre>
然后您需要将此 HTML 行放在文档中的某处(或动态附加)。您还可以使用一些 CSS 来设置样式或根据需要放置它。
UPD。每条评论改进 T.J。拥挤。这是可能的非常基本的解决方案,它也支持错误捕获:
// uncomment below line and remove "if (true) {" when used in real world
//if (!window.console) {
if (true) {
window.console = function() {
var _ = {};
_.log = function(msg) {
var output = '<div>' + msg + '</div>';
document.getElementById('console').insertAdjacentHTML('beforeend', output);
};
window.onerror = function(errorMsg) {
_.log(errorMsg);
};
return _;
}();
}
// Should log simple message
console.log('test message');
// Should log reference error
test + 1;
<pre id="console"></pre>