javascript - test - Problemas potenciales al configurar window.location.hash
linux browser testing (5)
El hilo anterior lo sé, pero window.location.hash
está sujeto a un límite de tamaño. Si está pasando grandes cantidades de datos y desea guardar el estado en el hash, podría tener algunos problemas.
IE le dará el error: SCRIPT5 - Access denied.
Si intentas asignar un hash que está por encima del límite, es super útil.
Sólo alimento para el pensamiento.
Tengo un código javascript que, en un momento dado, establece window.location.hash
en una cadena específica. Esto funciona bien en Firefox 3, pero quiero saber si tendré problemas con esto más adelante, es decir, ¿es esta una solución de navegador cruzado (IE6 incluido)?
Además, estoy usando ReallySimpleHistory. ¿Esto estropeará su estado interno?
Gracias
La configuración de window.location.hash
funciona bien en IE6 e IE7.
En algunas ocasiones, la lectura de window.location.hash
debajo de IE6 justo después de un conjunto devolverá el valor anterior, pero el navegador ha establecido el hash correctamente. Un ejemplo:
alert(window.location.hash);
window.location.hash = ''#newHash'';
/* Sometimes, it will return the old value,
I haven''t figured out why it does that, and
it''s rather rare. */
alert(window.location.hash);
Si solo lo está utilizando para configurarlo, no debería tener ningún problema.
Todos los navegadores "modernos" (también conocidos como A-Graded) permiten establecer hash y no volver a cargar la página cuando lo hacen. Los que recargan la página son algunos de los más antiguos, como Safari 2.0.4 y Opera 8.5x .
Vea mi publicación de Usenet en comp.lang.javascript
donde lo explico con un poco más de detalle.
También tenga en cuenta que HTML5 finalmente especifica que el establecedor de hash debe cambiar el hash real pero no volver a cargar la página .
window.location.hash
ha existido desde que se introdujo JavaScript en Netscape Navigator 2 en 1995. Fue admitido por primera vez por Microsoft en Internet Explorer 3 en 1996. Creo que puede estar razonablemente seguro de que todos los navegadores compatibles con JS lo admiten.
Desde un vistazo rápido a través de la fuente, parece que ReallySimpleHistory hace un uso bastante extenso de esta propiedad, por lo que es posible que la rompa. Es posible que desee utilizar su método add(newLocation)
lugar (que funciona configurando window.location.hash
).
Obtener:
var hash = location.hash.slice(1);
Conjunto:
location.hash = ''#'' + ''string'';