[RESOLU] Ancre vers haut de page

Eléphant du PHP | 254 Messages

04 févr. 2017, 15:23

Bonjour à tous,

J'ai un problème tout con que je ne parviens pas à résoudre : j'ai créé un lien pointant vers une ancre en haut de page, le truc classique. En local, ça fonctionne, mais en serveur, ça fonctionne pas :

-> Le lien en local renvoie bien vers 127.0.0.1/Site/page_en_cours.html#ancre
-> Le lien serveur renvoie systématiquement vers http://www.site.com/#ancre et ce quelle que soit la page en cours.

Quelqu'un aurait une idée du pourquoi du comment ?

Merci pour votre aide !

Mammouth du PHP | 1207 Messages

04 févr. 2017, 17:03

Quelle est le code html brut ?

si il est généré, quelle est le code qui le génère ?

Eléphant du PHP | 254 Messages

05 févr. 2017, 00:48

C'est un jquery qui s'en charge :

Code : Tout sélectionner

$(document).ready(function() { // -- SCRIPT #TOP $('body').append("<a href='#top' class='top_link' title='Revenir en haut de page'><img src='Images/top.png' /></a>"); $('.top_link').css({ 'position' : 'fixed', 'right' : '30px', 'bottom' : '30px', 'display' : 'none', 'background' : 'none', 'opacity' : '0.9', 'z-index' : '2000' }); $(window).scroll(function() { posScroll = $(document).scrollTop(); if(posScroll >= 300) $('.top_link').fadeIn(600); else $('.top_link').fadeOut(600); }); });

Mai j'ai fait des tests avec un lien écrit directement en html, et le résultat est le même.
Je précise à tout hasard que j'ai des scripts de rewriteUrl, mais le problème persiste même sur les pages dont l'url n'est pas réécrite...

Eléphant du PHP | 254 Messages

05 févr. 2017, 00:53

Ça me fait penser que j'ai une balise <base href='...'> en serveur mais pas en local (parce que j'arrive pas à faire fonctionner l'url rewriting en local)... c'est sûrement l'origine du problème :/

Eléphant du PHP | 254 Messages

05 févr. 2017, 00:55

Bingo, je viens de trouver le sujet suivant : html-html5-xhtml-css/balise-base-les-ancres-t34761.html

En fait, le problème se pose pour beaucoup de monde, et il semble que personne ne l'ait réellement résolu de façon satisfaisante. Pour un truc aussi bête, c'est vexant :?

Eléphant du PHP | 254 Messages

05 févr. 2017, 01:52

Bon j'ai finalement résolu mon problème comme ceci, avec un bête window.scrollTo(0,0) :

Code : Tout sélectionner

$(document).ready(function() { // -- SCRIPT #TOP $('body').append("<a class='top_link' title='Revenir en haut de page' onClick='javascript:window.scrollTo(0,0);' style='cursor:pointer;'><img src='Images/top.png' /></a>"); $('.top_link').css({ 'position' : 'fixed', 'right' : '30px', 'bottom' : '30px', 'display' : 'none', 'background' : 'none', 'opacity' : '0.9', 'z-index' : '2000' }); $(window).scroll(function() { posScroll = $(document).scrollTop(); if(posScroll >= 300) $('.top_link').fadeIn(600); else $('.top_link').fadeOut(600); }); });