[RESOLU] Ancre vers haut de page

Eléphant du PHP | 250 Messages

04 Fév 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 | 1152 Messages

04 Fév 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 | 250 Messages

05 Fév 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 | 250 Messages

05 Fév 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 | 250 Messages

05 Fév 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 | 250 Messages

05 Fév 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);
   });
});