2013-03-08 11 views
30

Ho alcuni collegamenti in una pagina che hanno solo bisogno di cambiare la porzione querystring dell'URL corrente.URL relativo contenente solo la querystring

E.g. la pagina corrente è:

http://demo.com/bigreport?page=13

e voglio creare un collegamento a

http://demo.com/bigreport?page=14

Posso utilizzare <a href="?page=14">Next</a> come un link relativo per questo?

Sono stato sorpreso di scoprire che funziona in Chrome. Non l'ho mai visto documentato o menzionato da nessuna parte, quindi sono curioso di sapere se qualcuno lo usa e se c'è un supporto browser più ampio.

+0

Ottima posizione Ross, questa tecnica rende alcuni piccoli problemi fastidiosi molto meno fastidioso. – chim

risposta

38

Ulteriori ricerche rivelano che <a href="?page=14">Next</a>è un URL relativo valido.

E 'documentato come parte della URL specifica del WHATWG http://url.spec.whatwg.org/#relative-state

Il nuovo URL erediterà del URL di base schema, host, la porta e il percorso.

testato per funzionare su:

  • Chrome
  • IE 7
+0

mi stavo chiedendo anche su questo – Aris

7

<a href="?page14">Next</a> funziona perché i browser interpretano tale URL come relativo. Simile a come il collegamento delle immagini sul tuo sito potrebbe funzionare <img src="logo.gif"/> Gli url relativi funzionano in questo modo (il collegamento è relativo alla pagina corrente), non è necessario utilizzare l'URL assoluto completo.

I browser lo supportano da molto tempo. Le persone potrebbero non esserne a conoscenza perché il browser lo gestisce automaticamente.

+2

Grazie - Ho visto gli URL relativi al percorso corrente (foo/bar.html), host (/foo/bar.html) e persino al protocollo (: //demo.com/foo/bar.html), ma mai la stringa di query, quindi volevo sapere se questo è parte di uno standard e ampiamente supportato. –

+0

La stringa di query non è diversa da qualsiasi URI. – sweetamylase