tiene - Caracteres especiales en url en Safari
como saber si una pagina tiene virus (2)
Estamos utilizando algunos caracteres especiales en nuestra aplicación web de esta manera: example.com/foo#вап
.
Analizamos hash usando decodeURI(window.location.hash)
(y algunas veces hash contiene caracteres especiales no codificados) y establecemos un nuevo valor como window.location.hash = "вап"
.
Todo funciona bien en Chrome, Firefox, Opera e incluso IE, pero en Safari obtenemos 20?
en cambio, вап
.
Si configura el hash en Safari como window.location.hash = encodeURI("вап");
funciona, pero por supuesto no funciona en Chrome, FF y otros.
Finalmente encontré la solución. Si configura hash a través de window.location.href
todo funciona bien.
Aquí está el código:
var newHash = ...
var sharpIdx = window.location.href.indexOf("#");
if (sharpIdx === -1) {
window.location.href = window.location.href + "#" + newHash;
} else {
window.location.href = window.location.href.substr(0, sharpIdx) + "#" + newHash;
}
Me he enfrentado al mismo problema, encontré otra solución
window.location.hash = path;
// For safari url change fix
if (window.location.hash !== path) {
window.location.hash = encodeURI(path);
}