2008-11-27 9 views
1

Y a-t-il un moyen de suivre une URL en JavaScript sans définir le document.location.href?Suivre une URL en utilisant JavaScript

J'ai une page qui affiche une liste d'objets et chaque objet peut être associé à un téléchargement de fichier auquel on accède via un lien hypertexte. Un clic sur le lien lance une requête AJAX qui aboutit à la génération d'un fichier transitoire pouvant être référencé par une URL unique et temporaire.

Au moment où l'appel AJAX est terminé, il définit simplement document.location.href sur l'URL temporaire et le téléchargement du fichier est lancé. Bien sûr, cela a pour effet secondaire de changer l'URL dans la barre d'adresse du navigateur. Ainsi, si la page est actualisée, le fichier est à nouveau téléchargé au lieu de rafraîchir la page de listage des objets elle-même. Je suppose que je pourrais remettre l'URL à ce qu'elle était avant, mais cela me semble un peu hacky. Par ailleurs, j'utilise le framework JavaScript Prototype.

Répondre

3

vous pourriez ouvrir une nouvelle fenêtre avec la nouvelle URL? ou essayez de définir l'URL d'un iframe à la nouvelle URL, les deux devraient présenter un téléchargement de fichier (ce dernier étant la meilleure option)

+0

Créer une nouvelle fenêtre et charger cette URL dans cette fenêtre est une bonne idée. Je suis sûr que la plupart des navigateurs ferment automatiquement la fenêtre contextuelle une fois qu'il se rend compte qu'il ne s'agit pas d'un fichier HTML. – Kibbee

+0

J'ai essayé cette approche dans le passé et malheureusement vous obtenez un flash méchant que la fenêtre apparaît. Cela ressemble à un iframe est le chemin à parcourir. –

2

Vous pouvez utiliser un iframe caché - définissez le src de celui-ci dans le fichier à télécharger.

2

Si vous faites tout cela juste pour déclencher un téléchargement de fichier, cela ressemble à une bonne application pour utiliser un Iframe caché. Réglez le SRC de l'Iframe à la place, de sorte que vous n'ayez pas à jouer avec la page principale.

Questions connexes