window.location javascript ejemplos
¿Cuál es la diferencia entre window.location y document.location en JavaScript? (16)
A pesar de que la mayoría de la gente lo recomienda aquí, así es como se veía el protocolo dinámico de Google Analytics durante años (antes de pasar 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 utilizaron ''//'' 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, supongo que tienen algunas razones para ello.
EN GENERAL : Personalmente creo que document.location
y window.location
son los mismos, pero si son gigantes con las estadísticas más grandes sobre el uso de navegadores como Google utilizando document.location , recomiendo seguirlos.
¿Deberían ambos hacer referencia al mismo objeto?
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 diagonal inversa, uno es barra diagonal hacia adelante.
Curiosamente, si tiene un marco, una imagen o un formulario llamado ''ubicación'', entonces ''document.location'' proporciona una referencia a la ventana, marco o forma del marco, respectivamente, en lugar del objeto Ubicación. Aparentemente, esto se debe a que la búsqueda de nombre de 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!'')
En realidad, observo una diferencia en el cromo entre ambos. Por ejemplo, si desea navegar a un marco de espacio aislado desde un marco secundario, puede hacerlo solo con document.location pero no con window.location
Es raro ver la diferencia hoy en día porque html 5 ya no admite framesets. Pero en el momento en que tenemos un conjunto de marcos, 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.
La forma canónica de obtener el objeto de ubicación actual es window.location
(consulte esta página de MSDN de 1996 y el borrador del 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 nivel 1 de DOM .
Por lo que sé, todos los navegadores modernos asignan document.location
de window.location
a la window.location
de la window.location
, pero sigo prefiriendo la window.location
ya que eso es lo que he usado desde que escribí mi primer DHTML.
Por lo que yo sé, ambos son iguales. Para la seguridad de window.location
navegadores, puede usar window.location
lugar de document.location
.
Todos los navegadores modernos asignan document.location
de window.location
a la window.location
de la window.location
, pero sigo prefiriendo la window.location
ya que eso 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.
Pues sí, son lo mismo, pero ....!
window.location
no funciona en algunos navegadores de Internet Explorer.
Sí, son lo mismo. Es una de las muchas peculiaridades históricas en la API JS del navegador. Trata de hacerlo:
window.location === document.location
Yo diría que window.location
es la forma más confiable de obtener la URL actual. A continuación se muestra la diferencia entre window.location
y document.url
que apareció al frente en uno de los escenarios en los que estaba agregando parámetros de hash en la URL y luego los leí.
Después de agregar parámetros hash en la URL.
En un navegador anterior, no pude obtener los parámetros de hash de la URL utilizando document.url
, pero cuando usé window.location
, pude obtener los parámetros de hash de la URL.
Así que siempre es mejor usar window.location
.
window.location es la más confiable de las dos, considerando los 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 puede ver en document.location===window.location
.
Así que no hay necesidad de comparar el constructor o cualquier otra propiedad.
document.location
era originalmente una propiedad de solo lectura, aunque los navegadores Gecko también le permiten asignársela. Para la seguridad entre navegadores, use window.location
lugar.
Lee mas:
Según el W3C, son lo mismo. En realidad, para la seguridad de varios navegadores, debe usar window.location
lugar de document.location
.
Consulte: http://www.w3.org/TR/html/browsers.html#dom-location