2010-09-05 13 views
15

Necesito iniciar dinámicamente una descarga con javascript. He visto cómo la gente hace esto haciendo algo comoIniciando una descarga con javascript

window.open("some url", "Download"); 

pero tengo que hacerlo sin cambiar la URL de la página actual (y no el uso de marcos si puedo evitarlo, o crear y destruir un marco dinámicamente) ¿Alguien sabe cómo hacer esto?

+0

window.open no cambia la dirección URL de la página actual. Abre una nueva página (a menos que el bloqueador de pop-ups lo detenga). – Zafer

+0

En Chrome no hace nada, y también necesito un método de navegador cruzado. – kzip

+0

Oh, en realidad estaba equivocado, Chrome ni siquiera me dijo que estaba bloqueando ventanas emergentes. Gracias. – kzip

Respuesta

29

No es necesario window.open(). Es bastante feo y propenso a popupblockers (donde no tienes control sobre los clientes). Solo window.location es suficiente si el encabezado de respuesta de la URL de descarga solicitada contiene Content-Disposition: attachment. Esto no cambiará la URL actual en la barra de direcciones del navegador ni en la página actual, sino que solo mostrará un Guardar como diálogo.

E.g.

window.location = 'http://download.winzip.com/winzip145.exe'; 
0

Estás en el camino correcto, debes forzar al navegador para que solicite una nueva "página", incluso si esa página es un archivo.

es posible que desee probar una de las palabras clave para el segundo parámetro de window.open() - como _blank - tiene que haber alguna manera de conseguir Chrome para abrir la nueva URL ...