2010-03-17 7 views
0

Lorsque je saute à la section 1 & 2 tout fonctionne bien, et les navigateurs que j'ai testés (IE8, FF3.6, Chrome 5.0.342.3) défile jusqu'à l'ancre respective dans le div. Mais quand j'appuie sur le bouton de retour de l'historique du navigateur, le div ne revient pas en arrière.Historique du navigateur de retour avec div scrollable

Existe-t-il un moyen de rendre ce travail sans utiliser javascript?

<div id="scrolldiv" style="overflow:auto; width:500px; height:500px; border:2px solid #e1e1e1; "> 
<a href="#link1">Jump to section 1</a> <br /> 
<a href="#link2">Jump to section 2</a> <br /> 

<h1 id="link1" name="link1">Section 1</h1> 
<p>lots of text<br />lots of text<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></p> 

<h1 id="link2" name="link2">Section 2</h1> 
<p>lots of text<br />lots of text<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></p> 

Répondre

1

Vous pouvez essayer un lien vers /pagename.htm#topofpage où il y a un point d'ancrage en haut de la page. Toute personne qui accède à votre page sans cliquer sur le lien que vous fournissez à cette page n'aura pas d'effet, mais toute personne qui passe à /pagename.htm#topofpage devrait, je crois (pas testé), ajouter des ajouts sensibles à sa position dans l'historique de son navigateur.

En outre, avec très peu javascript vous devriez être en mesure de faire la page aller à ce hachage quand il est d'abord chargé, qui serait alors permettre à toute personne visitant /pagename.htm pour se rendre à /pagename.htm#topofpage. Il suffit d'insérer:

<script type="text/javascript" language="javascript"> 
    location.hash = "#topofpage"; 
</script> 

La théorie est que la première fois que quelqu'un visite la page du script exécute, en les mettant à #topofpage, et que par la suite il ne fonctionnera pas à moins qu'ils rafraîchissent.

Questions connexes