2011-07-26 3 views
0

배경;jQuery 해시 변경 # 요약 문제

jQuery를 사용하는 javascript 응용 프로그램과 특히 hashchange 플러그인 (http://plugins.jquery.com/project/hashchange)이 있습니다. 응용 프로그램은 브라우저의 해시 값에 의해 "제어"된 입니다. 즉, 해시가 변경되면 응용 프로그램에 알리고 그에 따라 상태가 변경됩니다.

신청서는 양식을 작성하는 데 사용됩니다. 따라서 사용자는 양식의 모든 페이지를 단계로 진행하고 마지막으로 양식을 제출하기 전에 페이지에 '요약'페이지, 즉 모든 양식 필드가 포함 된 페이지가 표시되고 값이 입력됩니다. # 0, # 1, # 2 및 과 같이 해시가 변경되는 양식 페이지를 단계별로 실행합니다 (물론 실제 양식의 페이지 수에 따라 다름). 페이지 요약은 #summary라고합니다.

이제 거의 모든 플랫폼과 브라우저에서 완벽하게 작동합니다. 윈도우 XP SP3에서 IE8에서 실행할 때 그러나, - 문제가 발생 : 그것은 URL 변경의 해시 부분은 "#summary"는 해시 변경 이벤트가 발생되지 할 때마다 것 같아

.

이것은 처리기 코드의 중단 점을 통해 확인되었습니다. 양식 페이지 이 정상적으로 트리거되는 경우 요약 페이지와 아무런 관련이 없습니다. 마찬가지로 다른 모든 OS 및 브라우저 구성에서이 작동합니다.

기본적으로 두 가지 아이디어를 시도했지만 어느 것도 프로젝트에서 부족한 리소스 인 개발 노력 없이는 수행 할 수 없습니다.

  1. 다른 해시 변경 플러그인을 사용해보세요. 해시 변경은 "역사" 플러그인에서 가져온 것 같습니다. 어쩌면 그 중 하나를 시도해 볼 수도 있습니다 - 또는 다른 제안이있을 수 있습니까?

  2. 요약 페이지의 이름을 다른 것으로 변경하십시오 (예 : #확인.

이 두 가지 모두 조금 비싸다. 의견이나 제안은 매우 환영합니다. 당신은 내가 두 개의 서로 다른 플러그인을 제안 할 수 있습니다 이름을 유지 주장 않는 경우가 가장 쉬운 방법처럼 보인다 사전에

감사합니다, MADS

답변

1

은 페이지의 이름을 변경할 수 있지만 것입니다.

첫 번째 DavisJShash routing extension입니다. 내가 사용한 적이 있고 여러 번 권장되었습니다.

Ben Cherry의 Saner HTML5 History App도 약간 더 가벼운 라이브러리이며 davis와 같은 클라이언트 측 라우팅 프레임 워크가 아닙니다.