Search code examples
javascripthtmlinnerhtml

Remove all content using pure JS


I'm looking for a way to remove the entire content of a web page using pure Javascript -- no libraries.

I tried:

document.documentElement.innerHTML = "whatever";

but that doesn't work: it replaces the inside of the <html/> element. I'm looking at replacing the entire document, including if possible the doctype and <?xml declaration.


Solution

  • I think a browser rightfully assumes a page with content-type text/html will always be a web page - so whilst you may do something like...

    document.body.innerHTML = '';
    

    It will still have some HTML hanging around.

    You could try...

    document.documentElement.innerHTML = '';
    

    ...which left me with <html></html>.

    Yi Jiang did suggest something clever.

    window.location = 'about:blank';
    

    This will take you to a blank page - an internal mechanism provided by most browsers I believe.

    I think however the best solution is to use document.open() which will clear the screen.