#181 151 chars - 1 (explanation) - 10 (no jQuery) = 140 points
181 151 chars - 1 (explanation) - 10 (no jQuery) = 140 points
javascript:i=setInterval(function(){for(var a=document;0!==a.childNodes.length;)a=a.childNodes[a.childNodes.length-1];a!==document?a.parentNode.removeChild(a):clearInterval(i)},50);
A few more characters can be saved by omiting the function(){
and using a string instead. Also note the extraction of commonly used properties, e.g., c='childNodes
allows us to do z[c]
instead of z.childNodes
.
javascript:h=setInterval('d=z=document;c="childNodes";for(l="length";z[c][l];z=z[c][z[c][l]-1]);z!=d?z.parentNode.removeChild(z):clearInterval(h)',50);
I guess I could make less points by using jQuery and not traversing properties, but oh well.
Ungolfed:
var intervalHandle = setInterval(function() {
var lastElement = document;
//get last element
while (lastElement.childNodes.length !== 0) {
lastElement = lastElement.childNodes[lastElement.childNodes.length - 1];
}
if(lastElement !== document) {
lastElement.parentNode.removeChild(lastElement);
} else {
clearInterval(intervalHandle);
}
}, 50);
Basically this finds the latest DOM element on the page and removes it. Then keeps doing that for every 50 milliseconds, which I found to be a kind-of-average nice speed to see a page getting ripped from the ground up. It's therapeutic, I swear it.
Disclaimer: I had made this some time ago and decided to share it, since it seems appropriate here. The source is at my GitHub repository.