2011-11-02 15 views
19

C'è un modo per aggiungere un segnalibro o un collegamento a una pagina HTML (di cui non sono autore) senza avere un ancoraggio nel codice html?C'è un modo per aggiungere un segnalibro o un collegamento a una sezione di una pagina senza un ancoraggio?

Desidero che la pagina scorra verso il basso in una sezione particolare quando si accede da un segnalibro o da un collegamento ipertestuale anche se nella pagina di destinazione non è presente alcun tag di ancoraggio.

Nota: la pagina di destinazione ha un tag di ancoraggio come "foo" quindi il segnalibro come http:/...hello.html#foo non solo porterà l'utente a hello.html ma scorrerà automaticamente verso il basso fino alla sezione della pagina in modo che il tag di ancoraggio "pippo" è nella parte superiore dello schermo

+0

Se si desidera caricare la pagina in una nuova finestra. Puoi aprirlo usando javascript e con il suo riferimento scorrere verso il basso, ma tu, se la pagina cambia così potrebbe il conteggio di scorrimento. – NitWit

+0

Grazie. Può essere fatto se si apre in una nuova scheda (è ok anche per me con javascript ma non dovrebbe essere una finestra pop-up). La pagina è abbastanza statica, non cambierà. Vuoi dire che posso impostare un numero come la lunghezza della pagina da scorrere verso il basso? Apprezzerò qualsiasi esempio. – SoulMan

+0

Dopo aver esaminato il mio pensiero originale, se il collegamento si trova su un altro dominio window.scrollTo non sarà consentito XSS – NitWit

risposta

14

Hai solo bisogno di avere l'attributo id appropriata su un elemento per usarlo come un segnalibro ...

<a href="#test">Test</a> 

... 

<p id="test">Hello world</p> 

Vedi le W3C specification: Anchors with the id attribute

specifiche più vecchi consentono anche navigazione basata sull'attributo name, ma questo attributo è stato rimosso dalle ultime specifiche HTML (ma se esiste un attributo name può essere utilizzato allo stesso modo di un attributo id).

Se non è presente l'attributo id o name in cui si desidera navigare, non è possibile navigare verso il punto specifico all'interno della pagina, ma solo sulla pagina stessa. In questo caso potresti voler citare le informazioni pertinenti e fornire una citazione con un link o magari chiedere all'autore se aggiungerebbe un id.

+0

Dovrebbe funzionare in qualsiasi browser moderno? Ho visto (http://stackoverflow.com/questions/484719/html-anchors-with-name-or-id/484892#484892) non è supportato in NS4 (beh, a chi importa), ma che ne pensi di IE6? –

+0

Funziona in IE6. (ma non dovresti supportare nulla che non sei in grado di testare) –

+3

Ci sono trucchi che possono collegarsi a un elemento che non ha un ID? – Rich

1

Se tutto il resto fallisce, è possibile utilizzare ottenere la query dal window.location, utilizzare jQuery per ottenere l'elemento DOM, per chiedere la sua posizione e scrollTop di trasferirsi lì (vedi jQuery scroll to element)

Problemi correlati