jQuery télécharger un zipfile à partir d'un bouton?
Assez embarrassante combien de temps que je passe à essayer d'obtenir à télécharger un zipfile à partir d'un bouton....
<button type='button' id='button-download'>download zipfile</button>
$("#button-download").live("click", function() {
$.get("http://localhost/admin/zip/002140.zip"); //doesn't work?
})
J'ai besoin de quelque chose de preuve de balle ici, c'est pourquoi je demande ici, merci.
OriginalL'auteur FFish | 2010-05-20
Vous devez vous connecter pour publier un commentaire.
Utilisez un simple:
lien. Alors ça marchera très bien (“bullet proof” même) sans JavaScript disponibles. Il offre également plus de la traditionnelle affordances les utilisateurs peuvent s'attendre à partir d'un lien de téléchargement, comme le clic droit-enregistrer sous, ou glisser-déposer.
Vous pouvez bien sûr utiliser les CSS pour la faire ressembler à un bouton au lieu d'un lien. Mais ce qu'il fait est, est un lien. Donc, c'est comment il devrait être marquée.
OriginalL'auteur bobince
Vous devez définir la
location.href
de propriété à cause de la navigation:Vous pouvez également avoir un simple
<a>
élément de style, comme si c'était un bouton, de cette façon, même les utilisateurs qui ont désactivé JavaScript sera en mesure de télécharger le fichier.En fait j'ai un problème, lors de l'utilisation de ce ou aussi de la fenêtre.endroit, je suis de perdre mon DOM créé par jQuery. Ce n'est pas un problème si ce qui est pire, la page va de -1, comme le fait de frapper le bouton de retour? WTF??
Si vous êtes en visite ici, à partir de 5 ans après ce post,
.live()
était retirée dans jquery 1.9, afin de l'utiliser.on()
. (merci PaparazzoKid ci-dessous)OriginalL'auteur CMS
Qui est l'envoi d'une requête AJAX.
Je n'ai pas essayé, mais il faut travailler dans la théorie. Si vous essayez d'aller à un emplacement d'un fichier qui est téléchargé, il vous invite à télécharger plutôt que de prendre vous à cette page.
.live()
utilisation.on()
..live()
a été supprimé en jQuery 1.9.OriginalL'auteur Kerry Jones
Peu en retard à la fête, mais j'ai pensé partager ma solution car personne d'autre ne possède.
Vous pouvez avoir le meilleur des deux mondes; un simple lien HTML et JS fonction, sans perdre la non-JS les utilisateurs.
OriginalL'auteur TheCarver