Skip to content

Instantly share code, notes, and snippets.

@mhofman
Created March 2, 2019 09:39
Show Gist options
  • Save mhofman/fe170f9492196e9eb09907c84ea28999 to your computer and use it in GitHub Desktop.
Save mhofman/fe170f9492196e9eb09907c84ea28999 to your computer and use it in GitHub Desktop.
Simple HTML Console library
(function (global) {
var output = null;
var buffer = [];
var target;
function log(msg) {
if (!output) {
buffer.push(msg);
return;
}
var pre = document.createElement('pre');
pre.textContent = msg;
output.appendChild(pre);
}
if (global.htmlConsole) {
target = global.htmlConsole.target;
}
if (!target) {
target = "#console";
} else if (typeof target.appendChild == 'function') {
output = target;
}
if (!output) document.addEventListener("DOMContentLoaded", function(){
output = document.querySelector(target);
if (!output) throw new Error('No element found for console using query "' + target + '".')
buffer.map(log);
buffer.length = 0;
});
global.htmlConsole = global.htmlConsole || {};
global.htmlConsole.log = log;
}(this));
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Simple HTML Console example</title>
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<script src="./html-console.js"></script>
<script>
htmlConsole.log('Hello from page');
setTimeout(() => htmlConsole.log('Delayed message'), 1000);
</script>
</head>
<body>
<div id="console"></div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment