Sto avendo frustrazione tra Firefox e IE, per lo più Firefox in quanto decodifica automaticamente un parametro nell'hash prima che io possa lavorare con esso in Javascript. IE non decodifica automaticamente l'URL quindi non mi dà errori di lettura.Firefox decodifica automaticamente il parametro codificato in url, non succede in IE
Il mio problema è simile a questo, tranne che non sto usando ASP.NET ASP.NET MVC automatically decoding JSON-encoded parameters from AJAX
Quindi, se prendo un url del tipo example.com/#question=!%40%23%24%25^%26*(
mentre il "!% 40% 23% 24% 25%^26 * ("è stato codificato utilizzando encodeURIComponent, in IE quando accedo all'hash verrà lasciato come"!% 40% 23% 24% 25 ^% 26 * (", tuttavia in firefox, quando accedo all'hash è automaticamente decodificato in "! @ # $%^& * ("
Il problema con questo è che nel mio script sto usando decodeURIComponent per decodificare il valore codificato, w che va bene se la stringa è effettivamente codificata. Poiché è già decodificato in Firefox, mi dà un errore di sequenza URI non valido, e IE non mi dà alcun errore.
Come posso risolvere questo problema?
Grazie mille per questo. Ho appena avuto lo stesso problema in Fx (Chrome va bene) e location.href.split ("#!") [1] ha funzionato anche per me. – meloncholy
Non sembra che Firefox risolverà questo in qualunque momento presto. Stanno discutendo del bug dal 2002 :(https://bugzilla.mozilla.org/show_bug.cgi?id = 135309 e https://bugzilla.mozilla.org/show_bug.cgi?id=483304 – gregers
Firefox sta consentendo "#" all'interno della stringa hash, quindi potrebbe essere più a prova di proiettili per così 'window.location.hash.split ("#"). splice (1) .join ("#") '. – fourthnen