function downloadURI(uri, name)
{
var link = document.createElement("a");
// If you don't know the name or want to use
// the webserver default set name = ''
link.setAttribute('download', name);
link.href = uri;
document.body.appendChild(link);
link.click();
link.remove();
}
<a onclick="this.href='data:text/html;charset=UTF-8,'+encodeURIComponent(document.documentElement.outerHTML)" href="#" download="page.html">Download</a>
function downloadText(filename, text) {
Object.assign(document.createElement('a'), {
download: filename,
href: 'data:text/plain;charset=utf-8,' + encodeURIComponent(text),
}).click()
}