2011-02-25 3 views
6

는 이유에 대한 힌트없이 물론'javascript : history.go (-1)'을 사용하는 것이 잘못된 이유는 무엇입니까?

javascript:history.go(-1) 

을 사용하는 것이 얼마나 끔찍한에 대한 몇 가지 트위터 농담을 가로 질러왔다.

왜 그렇게 끔찍한가요? 대안은 무엇입니까? (history.back() 외에도 똑같은 일을하는 것 같습니다). 크로스 브라우저 호환성의 문제입니까?

예를 들어 오류 페이지에서 사용자가 위의 방법을 사용하여 "돌아 가려고"시도하는 것을 보았습니다.

Google을 사용해 보았지만 사용할 수없는 이유는 무엇입니까? 모든 포인터/설명은 인정 될 것이다.

감사합니다.

+0

일부 페이지에서 문제가되는 페이지가 기록에 다시로드되지 않습니다. –

답변

5

그들은 의사 프로토콜 javascript:의 사용을 언급했을 수 있습니다. 이것은 일반적으로 앵커의 href 속성을 의미합니다. 이것은 추한 것입니다. 그것은 실제 링크가 아니며 JavaScript가 비활성화되어 있어도 기능 링크처럼 보이지는 않습니다. 이 프로토콜에 대한 유일한 유효한 사용은 북마크릿에 대한 것입니다.

또한 Russell Dias points out과 마찬가지로 정확히 뒤로 버튼과 동일하므로 그 이유는 무엇입니까? window.location.reload()을 호출하는 재로드 버튼도 있어야합니까?

+0

본질적으로 불필요한 이중화에 관한 좋은 점 – andryuha

+0

흥미 롭습니다. 필요한 경우의 한 예 : 제품 검색 결과 페이지의 사용자는 결과 표시를 변경하는 양식 필터를 사용합니다. 이 필터는 쿼리 문자열을 업데이트합니다. 사용자가 제품을 클릭하면 해당 제품 페이지에 '결과로 돌아 가기'링크가 있습니다. JS 메서드는 결과에 대한 올바른 쿼리 문자열을 가진 페이지에 사용자를 다시 배치합니다. 하드 코드 된 링크는 없습니다. –

3

내 머리 꼭대기에서 벗어나십시오. 나는이 자바 스크립트가 브라우저의 뒤로 버튼을 시뮬레이트한다고 믿는다. 사용자가 특정 페이지에 어떻게 접근했는지, 즉 외부 사이트를 통해 페이지에 올 수 있었는지에 대해 너무 확신 할 수는 없습니다. 이 구현은 간단하게, 그들을 돌려 보낼 것이고, 이것은 바람직한 결과가 아닐 수도 있습니다.

+0

확실하지만 내 오류 페이지 예제에서와 같이 의도 된 동작 인 경우 어떻게해야합니까? – andryuha

+0

+1 유효 지점 – alex

+0

@andryuha : 정직하게 말하면, 들여 쓰기 된 동작은 잘못된 것으로 볼 수 없습니다. 나는 몇몇 큰 사이트에서이 사이트를 사용하는 것을 거의 보지 못했습니다. –

관련 문제