2011-01-27 5 views
43

자바 스크립트를 사용하여 사용자를 리디렉션해야합니다. 선호되는 방법은 무엇입니까?window.open 대상 _self v window.location.href?

window.open("webpage.htm", "_self"); 

또는

window.location.href = "webpage.htm"; 
+0

처음으로 새 창이 열리지 않습니까? 나는 실제로 확신하지 못한다. –

+0

@Gunner, 아니요, 같은 창에서 열리므로 "_self"가 나타납니다 ... –

+0

_self를 _blank로 바꾸면 새 창이 열립니다 – DOK

답변

53

다른 함수 호출의 오버 헤드가 없어 명확히 번째 방법이 바람직하다 :

window.location.href = "webpage.htm"; 
+1

Jacob이 Or W보다 더 나은 설명을 제공했습니다. 프레디 릭 하 미디도 대답에 덧붙여 두 사람 모두에게 답을 주겠다. 그러나 나는 하나를 선택해야한다. 야곱이 먼저 대답 한 이래로 그 답이 당신에게갑니다. – Junto

+0

이 방법을 사용할 때'../../ folder/page.aspx? Source = abcd'와 같은 링크를 사용하면 작동하지 않습니다. 내 링크 작업을 만들기 위해 다른 방법을 사용해야했고 심지어 "_self"를 사용할 수 없었습니다. – Christine268

+1

함수 호출 오버 헤드? 함수 호출에는 확실히 비용이 들지만 관련성이 있는지 확실하지는 않습니다. 요즘에는 함수 호출이 모든 실질적인 목적을위한 속성 액세스만큼 효율적이라고 기대합니다. JVM에서 성능 향상을 통해 V8이 여기에서 기대했던 성능 향상을 실현했습니다. 여기에 내 분석에 문제가 있습니까? – faizan

3
window.location.href = "webpage.htm"; 
19

등은 상기 한 바와 같이, 두 번째 방법이 일반적으로 선호됩니다.

2 개의 코드 스 니펫은 정확히 동일하지 않지만 첫 번째 것은 실제로 창 개체 자체에 window.opener을 설정하지만 두 번째 코드는 적어도 Firefox에서는 그대로 두었습니다.

3

window을 생략하고 location.href을 사용할 수 있습니다. 예 :

location.href = 'http://google.im/'; 
17

다른 사람이 이것을 읽음으로써 저장되기를 바랍니다. 우리는 너무 많은 DOM 노드가 있다면

window.open("webpage.htm", "_self"); 

브라우저는 고장 및 죽을 것 :

우리는 웹킷 기반 브라우저 일에 문제가 발생했습니다. 허용 된 답변에 따라 코드를 전환 한 시점 :

모두 좋았습니다. 우리 페이지가 주기적으로로드에 실패한 이유가 무엇인지 명확하지 않았기 때문에 문제를 일으키는 원인을 파악하는 데는 시간이 걸렸습니다.

0

window.open("url","_self"); 
  • 첫 번째 매개 변수 "URL"을 사용하십시오 열려있는 페이지의 전체 경로입니다.
  • 두 번째 매개 변수 "_self"는 같은 탭의 열린 페이지에 사용됩니다. 다른 탭에서 페이지를 열려면 "_blank"를 사용하십시오.
+1

이 답변은 제안 된 답변에 직접적으로 반대되며 브라우저가 다운 될 수 있습니다. 이 스레드에서 내 응답을 참조하십시오. 또한, 왜이 방법을 사용할지 선택하는 이유를 밝히지 않고 단지 그것을 사용한다고 말합니다. –