Est-il possible d'avoir un lien normal pointant vers l'emplacement actuel?
J'ai actuellement trouvé 2 solutions, mais l'une d'entre elles inclut JavaScript et l'autre, vous devez connaître le chemin absolu vers la page:
<a href="#" onclick="window.location.reload(true);">1</a>
<a href="/foobar/">2</a>
<a href="#">3 (of course not working)</a>
Est-il possible de faire cela sans utiliser JavaScript ou connaître le chemin absolu?
J'ai utilisé:
<a href=".">link</a>
Reste à trouver un cas et/ou un navigateur où il ne fonctionne pas comme prévu.
Période signifie le chemin actuel. Vous pouvez également utiliser ..
pour faire référence au dossier situé au-dessus du chemin actuel, par exemple, si vous avez cette structure de fichier:
page1.html
folder1
page2.html
Vous pouvez ensuite écrire dans page2.html
:
<a href="../page1.html">link to page 1</a>
J'espère que ça t'as aidé!
EDIT:
Je ne sais pas si le comportement a changé ou s'il a toujours été comme cela, mais Chrome (et peut-être d'autres) traitera les périodes décrites ci-dessus comme concernant les répertoires , pas de fichiers. Cela signifie que si vous êtes à http://example.com/foo/bar.html
vous êtes vraiment dans le répertoire /foo/
et une valeur href
de .
dans bar.html
fera référence à /foo/
plutôt que bar.html
Voyez cela comme une navigation dans le système de fichiers d’un terminal; vous ne pouvez jamais cd
dans un fichier :)
EDIT 2:
Il semble que le comportement d'utilisation de href="."
ne soit plus aussi prévisible. Firefox et Chrome auraient peut-être changé leur façon de les gérer. Je ne m'appuierais pas entièrement sur ma réponse d'origine, mais essayerais plutôt la chaîne vide et la période dans les différents navigateurs pour votre utilisation spécifique et assurez-vous d'obtenir le comportement souhaité.
Aucune des autres réponses ne conservera de valeur de chaîne de requête. Essayer
<a href="javascript:window.location.href=window.location.href">
Certes, cela implique javascript, mais, à moins que vos utilisateurs aient le script désactivé, c'est assez simple.
Une façon en utilisant javascript:
<a href="javascript:window.location.reload(true)">Reload</a>
Vous pouvez faire ceci: <a href="">This page</a>
mais je ne pense pas que cela préserve les données GET et POST.
<a href="<?php echo $_SERVER["REQUEST_URI"]; ?>">Click me</a>
<a href=".">refresh current page</a>
ou si vous voulez passer des paramètres:
<a href=".?curreny='usd'">refresh current page</a>
utiliser ceci pour recharger/actualiser la page actuelle
<a href="#" onclick="window.location.reload(true);">
<a href="/">Clicking me refreshes the page</a>
<a href="?">Click Me To Reload the page</a>
Malheureusement, il n’existe aucun moyen global de le faire uniquement avec HTML. Vous pouvez essayer de faire <a href="">test</a>
mais cela ne fonctionne que dans certains navigateurs.
URL complètement idempotente qui préserve le chemin, les paramètres et l'ancre.
<a href="javascript:"> click me </a>
il utilise seulement un tout petit peu de JS.
EDIT: cela ne recharge pas la page. C'est un lien qui ne fait rien.
Alors que la réponse acceptée ne fonctionnait pas pour moi dans IE9, voici ce qui se passait:
<a href="?">link</a>
Une autre solution
<a href="javascript:history.go(0)">Reload</a>
J'utilise JS pour afficher uniquement la div avec un identifiant spécifique dans la page des balises d'un site jekyll. Avec un ensemble de liens dans la même page, vous affichez l'élément correspondant:
function hide_others() {
$('div.item').hide();
selected = location.hash.slice(1);
if (selected) {
$('#' + selected).show();
}
else {
$('div.item').show();
}
}
les liens utilisent des liens tels que:
<a href="javascript:window.location.href='/tags.html#{{ tag[0] }}-ref'; hide_others()">{{ tag[0] }}</a>
Vous pouvez utiliser un formulaire pour effectuer un POST vers la même URL.
<form method="POST" name="refresh" id="refresh">
<input type="submit" value="Refresh" />
</form>
Cela vous donne un bouton qui actualise la page en cours. C'est un peu gênant car si l'utilisateur appuie sur le bouton d'actualisation du navigateur, il recevra un message do you want to resubmit the form
.
essayez ceci
<a href="javascript:window.location.href=window.location.href">