JavaScript에서 window.location과 document.location의 차이점은 무엇입니까?
둘 다 동일한 객체를 참조해야합니까?
W3C에 따르면 동일합니다. 실제로, 크로스 브라우저 안전을 위해, 당신은 사용해야 window.location
보다는 document.location
.
참조 : http://www.w3.org/TR/html/browsers.html#dom-location
현재 위치 개체를 가져 오는 표준 방법 window.location
은 다음 과 같습니다 ( 1996 년 MSDN 페이지 및 2006 년 W3C 초안 참조 ).
document.location
원래 현재 URL을 문자열로만 반환 한과 비교하십시오 ( MSDN의이 페이지 참조 ). 아마도 혼동을 피하기 위해 DOM Level 1의 일부인 ( MSDN에서 여기 참조) document.location
로 대체되었습니다 .document.URL
지금까지 내가 아는 한, 모든 최신 브라우저는지도 document.location
에 window.location
,하지만, 난 여전히 선호 window.location
그게 내가 처음 DHTML을 쓴 이후로 사용한 적이 무엇으로.
window.location 은 모든 호환 브라우저에서 읽기 / 쓰기입니다.
document.location 은 Internet Explorer (적어도)에서는 읽기 전용이지만 Gecko 기반 브라우저 (Firefox, SeaMonkey)에서는 읽기 / 쓰기가 가능합니다.
document.location
원래는 읽기 전용 속성 이었지만 Gecko 브라우저 에서도 할당 할 수 있습니다. 브라우저 간 안전을 위해 window.location
대신 사용하십시오.
더 읽어보기 :
흥미롭게도 'location'이라는 이름의 프레임, 이미지 또는 양식이있는 경우 'document.location'은 각각 Location 개체 대신 프레임 창, 이미지 또는 양식에 대한 참조를 제공합니다. 이는 document.forms, document.images 및 window.frames 컬렉션 이름 조회가 window.location에 대한 매핑보다 우선 순위를 갖기 때문입니다.
<img name='location' src='location.png'>
if (document.location.tagName == 'IMG') alert('Hello!')
내가 아는 한, 둘 다 동일합니다. 크로스 브라우저 안전을 위해 당신이 사용할 수있는 window.location
것보다 document.location
.
모든 최신 브라우저는지도 document.location
에 window.location
,하지만, 난 여전히 선호 window.location
그것이 내가 처음으로 웹 페이지를 쓴 이후로 사용한 적이 무엇으로. 더 일관 적입니다.
둘 다 동일하다는 것을 명확히하는 document.location === window.location
returns 도 볼 수 있습니다 true
.
document.location === window.location
보고 true
또한
document.location.constructor === window.location.constructor
이다 true
참고 :, Firefox 3.6, Opera 10 및 IE6에서 방금 테스트했습니다.
예, 동일합니다. 브라우저 JS API의 많은 역사적 특징 중 하나입니다. 시도해보십시오.
window.location === document.location
window.location은 이전 브라우저를 고려할 때 둘 중 더 안정적으로 일관됩니다.
html 5는 더 이상 프레임 셋을 지원하지 않기 때문에 오늘날 그 차이를보기는 어렵습니다. 그러나 프레임 셋이있는 당시에는 document.location은 코드가 실행되는 프레임 만 리디렉션하고 window.location은 전체 페이지를 리디렉션합니다.
window.location
현재 URL 을 얻는 더 안정적인 방법 이라고 말하고 싶습니다 . 다음은 URL에 해시 매개 변수를 추가하고 나중에 읽는 시나리오 중 하나에서 앞에 나온 window.location
과 의 차이점 document.url
입니다.
URL에 해시 매개 변수를 추가 한 후.
이전 브라우저에서는을 사용하여 URL에서 해시 매개 변수를 가져올 수 document.url
없었지만 사용했을 때 window.location
URL에서 해시 매개 변수를 가져올 수있었습니다.
따라서 항상 사용하는 것이 좋습니다 window.location
.
document.location.constructor === window.location.constructor
입니다 true
.
에서 볼 수있는 것과 똑같은 객체이기 때문입니다 document.location===window.location
.
따라서 생성 자나 다른 속성을 비교할 필요가 없습니다.
적어도 IE에서는 로컬 파일에 약간의 차이가 있습니다.
document.URL은 "file : // C : \ projects \ abc \ a.html"을 반환합니다.
그러나 window.location.href는 "file : /// C : /projects/abc/a.html"을 반환합니다.
하나는 백 슬래시이고 하나는 슬래시입니다.
네, 똑같지 만 ....!
window.location
일부 Internet Explorer 브라우저에서 작동하지 않습니다.
실제로 두 가지 사이의 크롬 차이를 발견했습니다. 예를 들어 자식 프레임에서 샌드 박스 프레임으로 탐색을 수행하려는 경우 window.location이 아닌 document.location으로 만이 작업을 수행 할 수 있습니다.
대부분의 사람들이 여기에서 추천하고 있지만, Google Analytics 의 동적 프로토콜이 오랜 세월 동안 (최근 ga.js에서 analytics.js로 이동하기 전) 이렇게 생겼습니다.
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
추가 정보 : https://developers.google.com/analytics/devguides/collection/gajs/
새 버전에서는 브라우저가 자동으로 프로토콜을 추가 할 수 있도록 '//'를 사용했습니다.
'//www.google-analytics.com/analytics.js'
따라서 Google 이 JS에서 프로토콜이 필요할 때보 다 document.location 을 선호 한다면 window.location
몇 가지 이유가 있다고 생각합니다.
전반적인 : 나는 개인적으로 그렇게 생각 document.location
하고 window.location
있는 동일하지만, 같은 브라우저의 사용에 대한 가장 큰 통계와 거대한 경우 구글이 사용 document.location에를 , 나는 그들을 따라하는 것이 좋습니다.
참고 URL : https://stackoverflow.com/questions/7857878/window-location-vs-document-location
'Programing' 카테고리의 다른 글
C99에서 가장 유용한 새 기능은 무엇입니까? (0) | 2020.10.13 |
---|---|
JavaScript와 Java의 차이점은 무엇입니까? (0) | 2020.10.13 |
CoreData + iCloud + Cascade Delete-처리 방법? (0) | 2020.10.13 |
Heroku가 HTTP 응답을 자릅니다. (0) | 2020.10.13 |
ActionMode를 만들 때 onPrepareActionMode가 호출되지 않음 (0) | 2020.10.13 |