Maison >interface Web >js tutoriel >Comment puis-je déclencher par programme un téléchargement de fichier dans un nouvel onglet ou une nouvelle fenêtre à l'aide de JavaScript ou de jQuery ?

Comment puis-je déclencher par programme un téléchargement de fichier dans un nouvel onglet ou une nouvelle fenêtre à l'aide de JavaScript ou de jQuery ?

DDD
DDDoriginal
2024-12-20 04:27:09848parcourir

How Can I Programmatically Trigger a File Download in a New Tab or Window Using JavaScript or jQuery?

Comment lancer un téléchargement de fichier à l'aide de JavaScript/jQuery

Scénario :

Vous souhaitez déclencher un téléchargement de fichier lorsque un utilisateur clique sur un élément HTML spécifique à l'aide de JavaScript ou de jQuery, mais sans remplacer le contenu de la page actuelle. Au lieu de cela, vous souhaitez ouvrir le téléchargement dans une nouvelle fenêtre ou un nouvel onglet.

Solutions :

1. Utilisation d'un iframe invisible :

  • Créez un élément iframe invisible avec un identifiant autre que celui par défaut, tel que "my_iframe".
  • Utilisez l'attribut "src" de l'iframe pour spécifier l'URL du fichier.
<script>
  function Download(url) {
    document.getElementById("my_iframe").src = url;
  }
</script>

2. Forcer un téléchargement :

  • Pour forcer le navigateur à télécharger un fichier qu'il pourrait autrement restituer (par exemple, HTML ou texte), demandez au serveur de définir son type MIME sur quelque chose de dénué de sens, tel que "application/x-please-download-me" ou "application/octet-stream."

3. Ouverture d'un fichier dans un nouvel onglet (jQuery) :

  • Définissez l'attribut "target" de l'élément HTML sur "_blank" et fournissez l'URL du fichier dans l'attribut "href".
$('a#someID').attr({target: '_blank', href: 'http://localhost/directory/file.pdf'});

En cliquant sur ce lien, le fichier sera téléchargé dans un nouvel onglet ou une nouvelle fenêtre sans affecter la page actuelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn