another - window.location javascript ejemplos
¿Cuál es la diferencia entre window.location y document.location en JavaScript? (16)
¿Deberían ambos hacer referencia al mismo objeto?
A pesar de que la mayoría de la gente lo recomienda aquí, así es como se cortó el protocolo dinámico de Google Analytics durante años (antes de que se movieran de ga.js a analytics.js recientemente):
ga.src = (''https:'' == document.location.protocol ? ''https://ssl'' : ''http://www'') + ''.google-analytics.com/ga.js'';
Más información: https://developers.google.com/analytics/devguides/collection/gajs/
En la nueva versión, usaron ''//'' para que el navegador pueda agregar automáticamente el protocolo:
''//www.google-analytics.com/analytics.js''
Entonces, si Google prefiere document.location a window.location
cuando necesitan el protocolo en JS, creo que tienen algunas razones para eso.
EN GENERAL : Personalmente, creo que la window.location
document.location
y la window.location
la window.location
son las mismas, pero si es gigante con las estadísticas más importantes sobre el uso de navegadores como Google usando document.location , recomiendo seguirlas.
Al menos en IE, tiene una pequeña diferencia en el archivo local:
document.URL devolverá "file: // C: / projects / abc / a.html"
pero window.location.href devolverá "file: /// C: /projects/abc/a.html"
Uno es barra invertida, uno es barra inclinada.
Bueno, sí, son lo mismo, pero ...!
window.location
no funciona en algunos navegadores de Internet Explorer.
Curiosamente, si tiene un marco, una imagen o una forma llamada ''ubicación'', entonces ''document.location'' proporciona una referencia a la ventana, imagen o forma del marco, respectivamente, en lugar del objeto Ubicación. Aparentemente, esto se debe a que la búsqueda del nombre de la colección document.forms, document.images y window.frames tiene prioridad sobre la asignación a window.location.
<img name=''location'' src=''location.png''>
if (document.location.tagName == ''IMG'') alert(''Hello!'')
De hecho, noto una diferencia en chrome entre ambos, por ejemplo, si quieres hacer una navegación a un marco de espacio aislado de un marco secundario, entonces puedes hacer esto solo con document.location pero no con window.location
Es raro ver la diferencia hoy en día porque html 5 ya no es compatible con los conjuntos de marcos. Pero en el momento en que tenemos frameset, document.location redirigiría solo el marco en el que se está ejecutando el código, y window.location redirigiría toda la página.
Hasta donde yo sé, Ambos son lo mismo. Para seguridad de navegador cruzado, puede usar window.location
lugar de document.location
.
Todos los navegadores modernos asignan document.location
a window.location
, pero todavía prefiero window.location
ya que es lo que he usado desde que escribí mi primera página web. es más consistente
también puede ver document.location === window.location
devuelve true
, lo que aclara que ambos son iguales.
La forma canónica de obtener el objeto de ubicación actual es window.location
(vea esta página de MSDN de 1996 y el borrador de W3C de 2006 ).
Compare esto con document.location
, que originalmente solo devolvía la URL actual como una cadena (vea esta página en MSDN ). Probablemente para evitar confusiones, document.location
fue reemplazado por document.URL
(ver aquí en MSDN ), que también es parte del DOM Nivel 1 .
Por lo que yo sé, todos los navegadores modernos asignan document.location
a window.location
, pero aún prefiero window.location
ya que eso es lo que he usado desde que escribí mi primer DHTML.
Sí, son lo mismo. Es uno de los muchos caprichos históricos en la API JS del navegador. Trata de hacerlo:
window.location === document.location
Yo diría que window.location
es la manera más confiable de obtener la URL actual. A continuación se muestra la diferencia entre la window.location
y document.url
que apareció al frente en uno de los escenarios en los que estaba agregando parámetros hash en la URL y leyéndolo luego.
Después de agregar parámetros hash en la URL.
En un navegador anterior, no pude obtener los parámetros hash de la URL usando document.url
, pero cuando usé window.location
pude obtener los parámetros hash de la URL.
Por lo tanto, siempre es mejor usar window.location
.
window.location es la más confiablemente consistente de las dos, considerando navegadores más antiguos.
window.location es de lectura / escritura en todos los navegadores compatibles.
document.location es de solo lectura en Internet Explorer (al menos), pero de lectura / escritura en navegadores basados en Gecko (Firefox, SeaMonkey).
document.location === window.location
devuelve true
además
document.location.constructor === window.location.constructor
es true
Nota: recién probado, Firefox 3.6, Opera 10 e IE6
document.location.constructor === window.location.constructor
es true
.
Es porque es exactamente el mismo objeto que se puede ver en document.location===window.location
.
Por lo tanto, no es necesario comparar el constructor ni ninguna otra propiedad.
document.location
era originalmente una propiedad de solo lectura, aunque los navegadores Gecko también te permiten asignarlo. Para la seguridad entre navegadores, use window.location
lugar.
Lee mas:
Según el W3C, son lo mismo. En realidad, para seguridad de navegador cruzado, debe usar window.location
lugar de document.location
.