recherche

Maison  >  Questions et réponses  >  le corps du texte

Bloquer ou détecter les téléchargements sur les iframes

<p>J'ai rencontré un problème qui m'est très courant, mais je n'ai pas trouvé la bonne solution. </p> <p>J'ai un document qui s'affiche via une iframe. Il y a une barre d'outils en haut où les utilisateurs finaux peuvent télécharger des documents. Maintenant, je souhaite enregistrer des informations sur le téléchargement (j'aurai donc peut-être besoin de certains événements) ou désactiver l'option de téléchargement. </p> <p>Je sais que je peux désactiver toute la barre d'outils en ajoutant #toolbar=0, mais l'utilisateur final peut la modifier lui-même tout en téléchargeant la documentation sans la consigner, ce n'est donc pas une solution appropriée pour moi. ≪/p >
P粉819533564P粉819533564455 Il y a quelques jours995

répondre à tous(1)je répondrai

  • P粉369196603

    P粉3691966032023-09-01 14:46:55

    Si vous cochez iframe 不感兴趣,则可以使用 embedobject pour empêcher de telles barres d'outils d'apparaître.

    Avec les iframes, si vous souhaitez désactiver la fonctionnalité de téléchargement, vous risquez de vous retrouver avec un contenu spécifique au navigateur, car différents navigateurs convertiront l'iframe en différents éléments pour restituer réellement le PDF. Si vous savez exactement à quel navigateur vous avez affaire, vous pouvez essayer de dissocier l'écouteur du bouton de téléchargement, voici une solution que j'ai testée sous Chrome et qui semble fonctionner :

    var old_element = document.getElementById("viewer").shadowRoot.getElementById("toolbar").shadowRoot.getElementById("downloads").shadowRoot.getElementById("download");
    var new_element = old_element.cloneNode(true);
    old_element.parentNode.replaceChild(new_element, old_element);

    Merci à Ben D pour sa réponse à cette question sur la suppression de l'écouteur, si vous souhaitez suivre la voie de la journalisation, vous pouvez remplacer les étapes cloneNode et replaceChild par addEventListener. Je pense que cela posera toujours des problèmes aux utilisateurs suffisamment avertis/déterminés pour pouvoir télécharger le PDF (voir informations supplémentaires sur cet article : https://www.w3docs.com/snippets/html/how-to-embed -pdf-in -html.html< /a>), donc en fonction de votre objectif final, je vous recommande de présenter un aperçu d'image statique du PDF aux utilisateurs invités, tandis que la visionneuse complète peut être limitée aux utilisateurs connectés.

    répondre
    0
  • Annulerrépondre