Existe-t-il un moyen de créer un signet ou un lien vers une page HTML (dont je ne suis pas l'auteur) sans avoir d'ancrage dans le code html?
Je souhaite que la page défile jusqu'à une section particulière lorsqu'elle est accessible à partir d'un signet ou d'un lien hypertexte, même s'il n'y a pas de balise d'ancrage dans la page de destination.
Remarque: la page de destination a une balise d'ancrage comme "foo" puis un signet comme http:/...hello.html#foo
non seulement amènera l'utilisateur à hello.html mais fera également défiler automatiquement vers le bas jusqu'à la section de la page afin que la balise d'ancrage "foo" soit en haut de l'écran
Il suffit d'avoir l'attribut id approprié sur un élément pour l'utiliser comme un signet ...
<a href="#test">Test</a>
...
<p id="test">Hello world</p>
Voir spécification W3C: ancres avec l'attribut id
Les spécifications plus anciennes autorisaient également la navigation basée sur l'attribut name
, mais cet attribut a été supprimé des dernières spécifications HTML (mais s'il existe un attribut name
, il peut être utilisé de la même manière qu'un id
attribut).
S'il n'y a pas d'attribut id
ou name
où vous souhaitez naviguer, il n'y a aucun moyen de naviguer vers le point spécifique de la page, uniquement vers la page elle-même. Dans ce cas, vous pouvez citer les informations pertinentes et fournir une citation avec un lien ou peut-être demander à l'auteur s'il ajouterait un id
.
Si tout le reste échoue, vous pouvez utiliser get the query from the window.location
, utilisez jQuery pour obtenir l'élément DOM, demandez sa position et scrollTop
pour vous y déplacer (voir jQuery faites défiler jusqu'à l'élément )
Il y a une relativement récente Note du groupe de travail du W3C sur les sélecteurs et les états qui permettrait un lien vers le texte sélectionné.
Voici une extension Web de Firefox implémentant partiellement le format de lien (vous permettant de "créer" un lien, basé sur la sélection, ainsi que, évidemment, d'ouvrir un tel lien, en mettant en évidence la sélection correcte):
https://addons.mozilla.org/en-US/firefox/addon/precise-links/
En 2019, cela semble bien fonctionner.
Son code source est disponible ici .
L'extension Firefox "Web Marker" fait exactement ce que vous voulez.
https://addons.mozilla.org/en-US/firefox/addon/web-marker/
Vous pouvez trouver son code source et sa documentation ici: