Question

J'ai un script qui cache (display: none) certains divs dans la liste de chargement de la page. contenu Div représente la description d'un livre, et toute la liste est une sorte de bibliographie. Chaque div a un id, par exemple, "div1", "div2", etc.

<ul>  
<li><div class="hidden" id="div1"></li>  
<li><div class="hidden" id="div1"></li>   
...  
</ul> 

Et il y a une autre page avec un menu qui se compose de liens ancrés à tous un tel div:

<ul>  
<li><a href="bibl.html#div1"></li>  
<li><a href="bibl.html#div2"></li>  
...  
</ul>  

Je veux que le div caché à autoexpand lorsque le lien sur une autre page est cliqué. J'ai essayé des trucs window.location.href, mais en vain - mon JS est encore faible. Si je comprends bien la logique, il devrait prendre l'url en cours et vérifier pour « # », puis recherchez un élément avec la partie à droite dans l'attribut id. Merci une des personnes gentilles beaucoup.)

Était-ce utile?

La solution

Vous pouvez faire quelque chose comme ceci sur la page cible:

window.onload = function() {
    var hash = window.location.hash; // would be "#div1" or something
    if(hash != "") {
        var id = hash.substr(1); // get rid of #
        document.getElementById(id).style.display = 'block';
    }
};

Pour l'essentiel, vous vérifiez sur la charge de la page si href de la fenêtre a un hachage attaché. Le cas échéant, vous trouvez la <div> et de modifier l'affichage de style pour bloquer.

Autres conseils

Vous pouvez utiliser le window.location.hash pour voir la valeur de hachage. De là, vous pouvez getElementById(hashValue) et le montrer.

Merci! J'ai compris vous pouvez ajouter cette

location.href = '#' + id;

et ont également la page à la position défilement de la div visé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top