Domanda

Ho un caso d'uso in cui io pongo l'attenzione pagina ad un particolare elemento (avendo un ancoraggio prima di esso). Quando un utente non è firmato, non v'è un reindirizzamento alla pagina di login e dopo l'accesso, l'utente viene reindirizzato alla pagina in questione, con l'URL codificato.

Vedo che un URL del modulo di collegamento # obiettivo funziona come previsto (concentrandosi sull'elemento), mentre l'URL codificato Link Link% 23target non lo fa. È questo comportamento previsto?

Edit: Se questo è il comportamento previsto, c'è un lavoro intorno a concentrarsi sul bersaglio? Come in, un modo per aggirare la codifica URL?

Modifica l'aggiunta più informazioni:
Partendo dal presupposto che c'è un codice

page1.html
... html before the anchor ...
<a name="test">Some code</a>
... html after the anchor ...

Io sono l'accesso alla pagina come page1.html% 23test. Questo non funziona allo stesso modo di page1.html # test. Esiste un metodo jQuery per implementare questo? Sarebbe location.hash contenere prova anche dopo che è stata URL codificato? Non ho alcun controllo su come cambiare la codifica URL.

Modifica:

Come ho saputo che prende il nome di ancoraggio che volevo andare a dopo pagina viene reindirizzato, ho fatto un

window.location.hash = namedAnchor  

per risolvere il problema. Questa linea JS viene emesso solo se un cliente è firmato con successo in. Ha risolto il problema, anche se non la risposta generica che cercavo. Ero alla ricerca di un modo per evitare la fuga di # nella url encode.

È stato utile?

Soluzione

Sì. Codifica il # come% 23 dice in modo efficace "Volevo solo dire una pianura vecchio '' carattere, non un frammento di URL" #. Lo stesso vale per altri caratteri riservati:. Li fuga impedisce loro di avere un significato speciale nella URL

Nel tuo caso si vuole codificare l'URL quando si passa alla tua pagina di login come parametro, ma la tua pagina di login dovrebbe decodificare l'URL prima di eseguire il redirect.

Altri suggerimenti

È possibile sia analizzare questa stringa con PHP o altro linguaggio di script, o con JavaScript utilizzando l'encodeURIComponent. Ho scritto un articolo per questo, è possibile controllare su http://www.stoimen.com/blog/2009/05/25/javascript-encode-cyrillic-symbols-with-encodeuricomponent/

La speranza che ti può aiutare. Tuttavia, nonostante il comportamento predefinito è necessario verificare con entrambi i metodi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top