Bonjour / bonsoir,
Comme je ne connais quasiment rien en Javascript, on m'a développé un script dont l'objectif est d'ouvrir une fenêtre pour afficher un texte, dans le but de sauver le contenu dans un fichier texte en faisant "Enregistrer Sous".
Je ne sais pas si c'est la meilleure solution, mais elle fonctionnait très bien.
L'idée est la suivante : on remplit les champs d'un formulaire et quand on appuie sur un bouton, un traitement crée une chaîne depuis les données du formulaire et cette chaîne est écrite dans une nouvelle fenêtre.
Le code ressemble à ça :
Pendant des années, tout cela a très bien fonctionné, du moins dans Firefox, l'appui sur le bouton créait un fenêtre/onglet dont l'"URL" (en l'occurrence fort long) était
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var strHTML = creationChaineDepuisDonnees(); var OpenWindow = window.open('data:text/plain;charset=iso-8859-1;,' + unescape(encodeURIComponent(escape(strHTML))));
"data:text/plain;charset=iso-8859-1;,<TEXTE>"
et quand je faisais Crtl+S, une fenêtre s'ouvrait proposant d'enregistrer le contenu de ma fenêtre sous le format "Text Document", il me restait juste à renseigner le nom.
Depuis quelques temps (un mois minimum, cinq mois maximum), le fait d'appuyer sur le bouton m'ouvre et me ferme systématiquement l'onglet dans la foulée. Quand j'essaie sous Edge, l'onglet ne se referme pas mais il est vide (about:blank).
J'ai fait des recherches ça et là sur le net, je n'ai trouvé aucune explication à mon problème si ce n'est à demi-mots que cette façon de faire avait l'air de vouloir être proscrite par les éditeurs de navigateurs (pour quelle raison, je n'ai pas bien compris). J'ai essayé de bidouiller des solutions alternatives à base de window.document.write() mais il refuse absolument de considérer ma page comme étant du texte.
Bref, mon code est-il problématique ? Y a-t-il un moyen de faire autrement ?
Merci pour vos lumières, sachant que l'auteur de ce script est, dirons-nous, hors d'atteinte de ma part.
Et bonne année à tous.
Partager