Con javascript es muy sencillo en internet explorer, pero se complica bastante con otros navegadores
lo mejor es hacerlo con php
tenes una pagina.html
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <h1>Demo descarga de página
</h1> <p><a href="autodescarga.php?archivo=pagina.html">Descargar
</a></p>
En el mismo incluimos un link al archivo autodescarga.php y le pasamos como parámetro archivo=pagina.html, es decir el nombre de la propia página
autodescarga.php
Código PHP:
Ver original<?php
if(isset($_GET['archivo'])){ $archivo = $_GET['archivo'];
}else{
$archivo = "noexiste";
}
header('Content-Type: text/html;charset=utf-8'); header("Content-Disposition:attachment ; filename=$archivo"); header('Cache-Control: must-revalidate'); ?>
listo, ahora solo te resta poner el archivo autodescarga.php en la misma carpeta dónde esten los html. Si los html estuvieran en otras carpetas habría que hacerle algunas modificaciones, por lo que lo más fácil es poner una copia de autodescarga.php en cada carpeta que contenga html's descargables, si lo que descargases fuesen php y no html, no hay problema porque lo que descargue el usuario no es tu código php sino el html generado, es decir lo mismo que se ve al hacer click derecho -> ver código fuente, por lo que no implicaría ningún riesgo de seguridad
un detalle, yo usé utf-8, si tu codificación es distinta, tendrías que modificarla
Saludos