2010-09-02 3 views
0

Ma page ajoute # le html et programatically cette balise dans legoto emplacement du document HTML dynamiquement

function InsertTag(){ 
//Add <a name="spot"></a> to the middle of this document 
} 

window.addEventListener('load', InsertTag, false); 

ma question est de savoir comment puis-je faire le document puis sauter à #spot?

Répondre

1

Voici une suggestion: utilisez id à la place. Si vous avez:

<div id="something"> 

Ensuite, page.html#something vous amènera directement à ce div. Il ne doit pas être un div, il peut être utilisé sur n'importe quel élément. Si vous pouvez manipuler le DOM pour ajouter cette ancre, je suis sûr que vous serez capable de le faire.


maintenant ... Pour y arriver, vous pouvez utiliser:

// this approach should work with anchors too 
window.location.hash = 'something'; 

// or scroll silently to position 
var node = document.getElementById('something'); 
window.scroll(0, node.offsetTop); 

voir en action ici: http://ablazex.com/demos/jump.html

Il existe des différences subtiles entre les méthodes. Par exemple: Le premier fera que l'emplacement sur la barre d'adresse sera mis à jour, le second ne le sera pas.

Si vous voulez que ce soit plus beau, vous pouvez utiliser un plugin jQuery, comme ScrollTo.

0

Essayez

window.location = currentUrl+'#spot';

où CURRENTURL est une variable ayant l'adresse de l'URL actuelle

+0

l'a essayé auparavant. il continue d'actualiser la page depuis que j'ai ajouté #spot par programme. – Rana

+0

oh oui. Je n'y ai pas pensé. window.scroll est la meilleure option alors imo – naiquevin

0

Vous pouvez essayer.

var el = document.getElementById('spot'); 
var eloffsetTop = el.offsetTop; 
window.scroll(0,eloffsetTop);