Desencadenar la descarga de archivos en una página con contenido

He visto muchos sitios web activando un cuadro de diálogo para guardar como archivo en una página con contenido HTML existente. ¿Cómo lo hacen?

Sé cómo configurar los encabezados correctos, como la disposición del contenido, etc., pero cuando lo hago, el contenido de la página no se carga e inmediatamente se activa la descarga del archivo …

Cree una página HTML normal y luego agregue una actualización META que redirija a un script PHP que envía el archivo con un encabezado Content-Disposition .

Por ejemplo:

  

Sé que muchos de ellos usan un iframe oculto, la página a la que apunta el iframe es en realidad una descarga de archivos.

Aunque hay mejores formas de hacerlo, estoy seguro.