2009-11-11 3 views
5

사용자가 뒤로 버튼을 누르는 것을 멈추게하려면 window.history.go(1)이되었지만, 앞으로 진행 기록이 있는지 확인할 수 있는지 궁금해서 버튼을 누르지 않도록 경고 메시지를 표시 할 수 있습니다. 뒤로 버튼.Javascript에 전달 내역이 있는지 확인하려면 어떻게해야합니까? (뒤로 버튼 비활성화)

당신은 역사 길이를 얻을 수 있지만 역사 목록에서 현재 위치를 얻는 방법이 있는지 알고 있습니까? 또는 이것을하는 다른 방법은 ...

+6

사이트를 뒤로 돌릴 필요가 있다고 생각되면 기본 수준에서 매우 잘못된 것을하고 있으므로 시간을 낭비하지 말고 수정해야합니다. – bobince

+2

오, 절대적으로, 훨씬 더 큰 문제에 대한 불쾌한 해킹이지만, 레거시 코드의 60 페이지 이상을 다시 작성하려면 "비상 사태"로 표시된 우선 순위 작업을 위해 버려졌습니다. – NibblyPig

+0

비상 작업 마스터를이 페이지로 보냅니다. 어쩌면 그들은 빛을 볼 것입니다. –

답변

1

AFAIK JavaScript에서 기록에 액세스 할 수 없습니다. 그것은 보안 구멍이 될 것이고 대부분의 브라우저는 그것을 허용하지 않을 것입니다. 아마 ActiveX를 사용하여 ActiveX에서 해결 방법이있을 수 있습니다.

다음 속성이 있습니다 당신

window.history

에 유용 할 수 있습니다이 항목을 발견.

이 속성은 웹 콘텐츠를 사용할 수없는 다른 브라우저에서 지원되지 않는 에서 세션 기록 을 다음 항목의 URL를 돌려줍니다. 보안을 위해

는 역사 객체가 권한이없는 코드는 세션 기록에 을 다른 페이지의 URL 에 액세스 할 수 없습니다 추론하지만 그것은 세션 기록을 탐색 할 수 없습니다.

세션 기록을 지우거나 권한이없는 코드에서 뒤로/앞으로 탐색을 사용하지 않도록 설정할 수 없습니다. 가장 근접한 솔루션은 location.replace() 메소드입니다. 은 세션 기록의 현재 항목을 제공된 URL로 바꿉니다.

+0

그래, 그런 식으로 보이지만, 목록에있는 항목의 수를 얻고 그렇게 할 수있게하는 것도 혼란 스럽습니다. – NibblyPig

+0

당신의 편집에 대한 응답으로, 당신이 호출하고자하는 함수가 성공할 것인가 아닌가를 검사 할 수있는 보안 구멍이 어떻게 보이지는 않습니다 ... – NibblyPig

+0

그것은 함수 호출이 아니라 사용자에 관한 것입니다 알 수없는 웹 사이트에 노출되는 보안. – rahul

0

뒤로 (또는 앞으로) 단추를 끊지 마십시오.

  1. 당신은 그들이 (등 플러그인을 포함하여) 모든 가능한 사용자의 설정을 모른 채 할 수 정확히 모르는
  2. 당신은 여전히 ​​약간 지능형 뭔가를해야 (예 : 데이터베이스를 쓰레기하지 않음) 스크립트 인 경우 비활성화되었거나 비활성화 된 후 다시 활성화됩니다.
  3. 이미 2 번을 처리해야하므로 모든 사람을 위해 모든 장소에서 1 위를하는 방법을 파악하는 데 걱정할 필요가 없으며 2 번 작업을 더 잘 수행하는 데 더 많은 시간을 할애해야합니다 .
  4. 이제 사이트는 뒤로 버튼과 함께 작동합니다.
관련 문제