Skip to content

Instantly share code, notes, and snippets.

@tsholmes
Last active August 29, 2015 13:56
Show Gist options
  • Save tsholmes/9289010 to your computer and use it in GitHub Desktop.
Save tsholmes/9289010 to your computer and use it in GitHub Desktop.
Page eraser
(function(){
var scripts;
while ((scripts=document.getElementsByTagName("script")).length) {
for (var i = 0; i < scripts.length; i++) {
scripts[i].parentNode.removeChild(scripts[i]);
}
}
var els = [];
var count = 0;
var stack = [document.body];
while (stack.length) {
var el = stack.pop();
count++;
if (el.childNodes.length) {
for (var i = 0; i < el.childNodes.length; i++) {
stack.push(el.childNodes[i]);
}
} else {
els.push(el);
}
}
var id = setTimeout(function(){},0);
for (var i = id; i >= 0; i--) clearTimeout(id);
id = setInterval(function(){
var rep = Math.max(1,count/1000);
count -= rep;
for (var j = 0; j < rep;j++) {
if (els.length == 0) {
clearInterval(id);
return;
}
var i = (Math.random()*els.length)|0;
var el = els[i];
els[i] = els[els.length-1];
els.pop();
var parent = el.parentNode;
parent.removeChild(el);
if (parent.childNodes.length == 0) {
els.push(parent);
}
}
},1);
for (var i = id - 1; i >= 0; i--) clearInterval(i);
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment