누군가는 나에게 사이의 차이를 말할 수 window.location.href
와 top.location.href
?
또한 어느 곳을 사용할지.
그리고 mvc에서 ajax 호출 후 리디렉션 할 때 어느 것이 더 좋을까요?
답변
window.location.href
현재 페이지의 위치를 반환합니다.
top.location.href
(의 별칭 인 window.top.location.href
) 창 계층 구조에서 최상위 창의 위치를 반환합니다. 창에 부모가 없으면 top
자체에 대한 참조입니다 (즉, window
=== window.top
).
top
프레임을 다룰 때와 다른 페이지에서 연 창을 다룰 때 모두 유용합니다. 예를 들어 test.html
다음 스크립트로 호출 된 페이지가있는 경우 :
var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');
결과 경고에는 반환 되는 about : blank가 아닌 test.html의 전체 경로가 포함됩니다 window.location.href
.
리디렉션에 대한 질문에 답하려면 window.location.assign(url);
답변
답변
top
모든 현재 프레임 (나머지 창의 아버지)을 포함하는 창 개체를 참조합니다. window
현재 window
입니다.
http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
따라서 top.location.href
모든 프레임을 포함하는 “마스터”페이지 링크를 window.location.href
포함하고 “현재”페이지 링크 만 포함 할 수 있습니다.
답변
첫 번째는 “뒤로”를 클릭하고 현재 페이지로 돌아갈 수있는 (또는 가능해야하는) 항목을 기록에 추가합니다.
두 번째는 현재 기록 항목을 대체하므로 다시 돌아갈 수 없습니다.
참조 window.location
:
-
assign(url)
: 제공된 URL에 문서를로드합니다. -
replace(url)
: 현재 문서를 제공된 URL에있는 문서로 바꿉니다.assign()
방법 과 다른 점replace()
은 현재 페이지를 사용한 후에 는 세션 기록에 저장되지 않으므로 사용자가 뒤로 버튼을 사용하여 해당 페이지로 이동할 수 없다는 것입니다.
window.location.href = url;
다음보다 선호됩니다.
window.location = url;