Aussi disponible en : English · Español · Português · العربية
Lien vers un texte précis d’une page : générateur
Créez un lien qui défile jusqu’à une phrase exacte et la surligne, et démontez celui qu’on vous a envoyé.
Qu’est-ce qu’un fragment de texte ?
Un fragment de texte est un lien qui ouvre une page et saute directement à une phrase qu’elle contient, en surlignant la correspondance. Nul besoin que la page comporte une ancre à cet endroit, ni qu’elle vous appartienne : la cible, ce sont les mots eux-mêmes. Il s’écrit à l’intérieur du fragment ordinaire de l’URL, après un délimiteur de trois caractères, si bien qu’il ressemble à un lien banal doté d’une queue.
Cela compte, parce que l’autre solution consiste à demander à quelqu’un d’ouvrir un long article et d’y chercher une phrase. Le fragment de texte le fait à sa place : c’est pour cela que les navigateurs ont ajouté une commande de copie du lien vers la sélection, et que la même syntaxe apparaît dans des résultats de recherche qui vous déposent au paragraphe utile plutôt qu’en haut de la page.
Cette page en construit un à partir du texte à surligner, et démonte celui qu’on vous donne. Les deux moitiés comptent, car la syntaxe comporte deux pièges qui produisent sans bruit un lien pointant ailleurs que là où vous vouliez.
Comment l’utiliser
- Donnez l’URL de la page et le texte. Copiez la phrase telle qu’elle apparaît sur la page, ponctuation comprise. Le reste est facultatif : un terme de fin en fait une plage, et les deux champs de contexte lèvent l’ambiguïté d’une phrase qui revient plusieurs fois.
- Copiez le lien. Si votre texte contient un caractère réservé par la syntaxe, l’outil montre aussi ce qu’aurait produit l’encodeur JavaScript habituel et ce que cette version signifie réellement — rarement la même chose.
- Ou collez un lien à analyser. L’analyseur affiche chaque directive trouvée et, séparément, l’URL que reçoit la page visée : ce n’est pas celle que vous avez collée.
La partie que la page visée ne peut pas voir
La directive est séparée du reste du fragment par trois caractères : deux-points, tilde, deux-points. Ce délimiteur existe pour que la syntaxe s’ajoute aux URL sans casser les pages qui utilisent déjà le fragment à leurs propres fins, et il a une seconde conséquence qu’on remarque rarement.
La norme est explicite : la directive est retirée des API qu’une page peut atteindre, afin de l’empêcher d’interagir avec le script de l’auteur. La page vers laquelle vous pointez ne voit donc jamais la phrase que vous avez employée. Son propre code, en lisant l’URL courante, obtient tout jusqu’au délimiteur et rien après. La section qui décrit le mécanisme est d’ailleurs intitulée autour du fait de cacher la directive au script.
C’est une décision de confidentialité assumée — un lien contenant la phrase que quelqu’un était en train de lire en dit plus qu’un lien vers une page — et c’est aussi ce qui permet au format d’évoluer. Puisque les pages ne peuvent pas observer les directives, les navigateurs peuvent en définir de nouvelles sans rien casser ; voilà pourquoi une directive inconnue est autorisée au lieu d’être une erreur. L’analyseur les signale ici comme inconnues plutôt que de les rejeter.
Le caractère que l’encodeur évident laisse passer
Le texte d’un fragment doit être encodé pour cent, et la norme nomme trois caractères à échapper dans un paramètre de texte : le tiret, l’esperluette et la virgule. Ils portent un sens dans la syntaxe : un caractère laissé littéral change donc ce que dit le lien.
L’encodeur standard de JavaScript en échappe deux sur trois. Il laisse le tiret tranquille, car partout ailleurs dans une URL le tiret est un caractère parfaitement ordinaire — et c’est précisément celui que la syntaxe emploie pour marquer les termes de contexte. Un préfixe s’écrit texte, tiret, virgule ; un suffixe, virgule, tiret, texte. Un tiret accolé à une virgule relève donc de la structure.
Le résultat est un lien qui fonctionne, ouvre la page, surligne la mauvaise chose et ne signale rien du tout. Demandez une plage allant de le bien-connu- jusqu’à problème, encodez-la de la manière habituelle, et le résultat se lit comme un préfixe le bien-connu suivi d’un début problème : d’autres termes, une autre correspondance, aucune erreur. L’outil affiche les deux versions côte à côte dès que votre texte peut le déclencher, et se tait quand ce n’est pas le cas — la plupart des textes ne contiennent aucun des trois caractères et s’encodent pareil des deux façons.
Qui a déjà fabriqué un lien mailto reconnaîtra la forme du problème. Ce format-là ressemble lui aussi à une chaîne de requête, et traite lui aussi un caractère autrement que l’encodeur vers lequel tout le monde se tourne.
Limites assumées
Cet outil ne peut pas vous dire si le texte figure effectivement sur la page. Il n’a aucun moyen d’aller la chercher — un navigateur interdit à un site de lire le contenu d’un autre — : il construit donc un lien correct au regard de la syntaxe, sans se prononcer sur la correspondance. Si la phrase a changé depuis que vous l’avez copiée, le navigateur ouvre la page normalement et ne défile nulle part.
Il ne promet pas non plus que le navigateur en tiendra compte. La prise en charge est vérifiée comme la norme le suggère, en cherchant l’interface de directive de fragment sur le document, et cette réponse s’affiche plus haut pour le navigateur avec lequel vous lisez ceci. Au-delà de la prise en charge, les navigateurs appliquent leurs propres restrictions quant au moment où un fragment est honoré, et un lien qui fonctionne depuis un endroit peut ne rien faire depuis un autre.
Enfin, la correspondance porte sur le texte rendu, non sur le balisage. L’espace entre les termes de contexte et la cible peut varier, ce qui permet à une phrase de franchir des frontières d’éléments, mais une phrase coupée en son milieu par du balisage peut malgré tout ne pas correspondre. Quand une longue phrase échoue, une plage avec un début court et une fin courte tient généralement mieux qu’un unique terme de début très long.
Pourquoi est-ce gratuit ?
Construire un lien revient à encoder pour cent quelques chaînes et à les assembler, ce que votre navigateur fait pendant que vous tapez. Aucun serveur n’intervient : il n’y a donc rien à facturer ni de compte à créer.
Rien n’est envoyé. Le texte que vous saisissez et toute URL que vous collez restent dans cet onglet.