Pregunta

Tengo un poco de código Javascript que crea una "salvar amigable" versión de una página web.

child = window.open("","child");
child.document.write(htmlPage);

"htmlpage" es el HTML básico de la página con todas las referencias de JavaScript sacados, un conjunto diferente de cabecera imágenes referencias, etc.

Todo lo muestra perfectamente en la ventana emergente, sin ejecutar JavaScript. Cuando hago clic en "Archivo-> Guardar como", el archivo guardado es la ventana padre, junto con toda su Javascript, y sin rastro de la ventana secundaria. ¿Alguien sabe cómo solucionar este problema? Quiero guardar sólo la ventana secundaria.

Gracias, -Kraryal

¿Fue útil?

Solución

Al guardar la página que se guardará el contenido de URL original (por ejemplo, al igual que si ha descargado una copia nueva)

Si desea una versión "limpia", que necesita para generar esa versión en el servidor, y abra la ventana emergente con la URL como el primer parámetro.

Otros consejos

Yo tenía una situación similar (pero no estaba dispuesto a renunciar por completo). Estoy construyendo una versión salvar ambiente de una página web con Javascript que quiero que el usuario descargue un archivo de texto (valores separados por comas, en mi caso). Creo URI data: pueden ayudar aquí.

//construct the csvOutput in Javascript first
var popup = window.open("data:application/octet-stream," + encodeURIComponent(csvOutput), "child");
//no need to document.write() anything in the child window

En Firefox, esto no quiere abrir una ventana, incluso, simplemente le pregunta al usuario si desea guardar el archivo y lo guarda como un archivo .part. No es exactamente ideal, pero al menos se ahorra el archivo sin aparecer una ventana innecesaria.

Como alternativa, se puede utilizar la text / plain tipo MIME:

//construct the csvOutput in Javascript first
var popup = window.open("data:text/plain;charset=utf-8," + encodeURIComponent(csvOutput), "child");

En Firefox, esto pop abrir una nueva ventana, pero luego se guarda por defecto como texto ASCII, sin ninguna de la costra de la ventana padre o cualquier ajuste de líneas. Esto es probablemente lo que voy a utilizar.

Parece que esto no va a funcionar en el IE sin embargo. IE 8 es la única versión que soporta URIs data:, y tiene un serie de restricciones en donde puede ser utilizado. Para IE, lo podría hacer en execCommand .

Gracias a este hilo tek-punta y la < a href = "http://en.wikipedia.org/wiki/Data_URI_scheme" rel = "noreferrer"> artículo de Wikipedia sobre el esquema de URI de datos .

para un Windows / IE sólo una versión ver aquí: http://p2p.wrox.com/javascript-how/3193-how-do-you-save-html-page-your-local-hd.html

Lo sé, terrible, pero por si acaso es para como un IE de sólo intranet ....

Por desgracia, parece que tengo no es suficiente reputación para añadir comentarios a mi pregunta, así que voy a añadir esto aquí.

Esta Javascript se despliega tanto para Internet Explorer y Safari. El alojamiento de aplicaciones no siempre tiene acceso al sistema de archivos local.

Los usuarios pueden marcar la página que están trabajando con, a continuación, guardarlo para su posterior impresión o envío por correo electrónico. Les decimos que lo guarda como un archivo de un solo archivo para que pueda ser hecho por correo. El diálogo para guardar puede hacer eso, y el usuario puede poner el archivo en algún lugar tienen acceso t, así que por eso lo usamos.

Parece la forma más sencilla sería escribir la nueva html desde el javascript para el directorio local, pero no siempre se puede hacer eso. Alguna otra idea? Gracias por la ayuda hasta el momento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top