Pregunta

Actualmente estoy usando el meta http-equiv = 'Actualizar' para las descargas automáticas de inicio PDF. sin embargo, esto tiene un efecto diferente en cada uno de los navegadores.

El problema principal es con IE (6 y 7) una vez que el usuario es redirigido a la PDF si el usuario haga clic en el botón de retroceso que son enviados de vuelta a la página que inicia la descarga y luego redirigir rápidamente a la PDF de nuevo.

Firefox en Windows tiene un efecto mejor, pero todavía no es perfecto el usuario llega a la página de descarga y se redirige al PDF. Sin embargo, si se utiliza el botón atrás del pierda por completo la página de descarga.

Actualmente Firefox en Linux tiene el efecto exacto que quiero. Siendo que la página de descarga le redirige a un archivo PDF y el botón de retroceso del PDF se envía de vuelta a la página de descarga y allí se queda.

He intentado usar la función setTimeout () de JavaScript para retrasar un pop-up del PDF sin embargo no parece el retraso para trabajar en cualquier navegador y el pop-up no parece trabajar en IE7.

Alguien ha implementado una solución elegante al problema que podría utilizar?

Gracias de antemano por su ayuda

¿Fue útil?

Solución

Referente

Usted puede comprobar la URL de referencia:

if (document.referrer != "http://homepage.com/file.pdf") {
    // go to the file
}

Es un poco más complejo porque hay que comparar con la URL absoluta de la de referencia, pero esto no debería ser un problema.

Cookies

Se puede establecer una cookie la primera vez que entra en la página de descarga. Si se establece la cookie (para cada archivo otra entrada en la cookie), entonces no debe redirigir.

Una desventaja es que si alguien vuelve a cargar la página (porque quiere ver el archivo por segunda vez) que no puede acceder al archivo más. Hay algunas posibilidades de evitarlo:

  • Establecer una marca de tiempo que expira en la cookie.
  • Añadir un enlace a la página de la que el usuario puede hacer clic manualmente.

Configuración / Conseguir una cookie:

if (document.cookie && document.cookie == "I was here!") {
    alert(document.cookie);
} else { // set a cookie
    document.cookie = "I was here!";
}

Javascript puede redirigir la siguiente manera:

window.location.href = "http://www.google.com";

Otros consejos

utilizar una ventana emergente javascript

De esta manera, cuando el usuario accede al pdf, está en un navegador diferente, que se puede cerrar. una vez que se hace eso, se puede seguir navegando por el sitio.

Si he entendido lo que necesita, que quiere hacer algo así como de archivos compartidos comportamiento:. Usuario espera unos segundos con el contador y después de tiempo de espera que le vamos a redirigir a la página wich empieza descarga

Tal vez debería simplemente enlace de la presentación para descargar la página en lugar de redireccionar? Esta página debe enviar cabeceras "fuerza-descarga" para evitar navegador navegar en él. Si alguien va a tratar de acceder a esta página directamente -. Comprobar árbitro o encabezados o de cualquier otro tipo de protección se puede imaginar (como vínculos dinámicos), tal vez usted ya tiene uno

Esta solución le permitirá evitar la magia JS y debe hacer que el código entre navegadores sin dificultad.

Puede añadir un iframe para el DOM a través de JavaScript con src establece en la URL que desea descargar. El navegador no va a cambiar la página en absoluto, la descarga se acaba de empezar. Se puede ocultar el uso de CSS y el usuario ni siquiera sabe que está ahí.

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