2010-11-27 2 views
7

페이지간에 데이터를 전달하기 위해 해시를 사용했으며 (scrollTop() 등 설정) hashChange 이벤트를 사용하여 주어진 페이지에서 변경 사항을 트리거했습니다.쿼리 문자열에 대해 hashchange와 같은 이벤트가 있습니까?

그러나 해시는 페이지를 특정 (때로 중요하지 않은) 지점으로 이동하는 것과 같이 반드시 관심이없는 기본 동작을 사용합니다.

나는 쿼리 문자열이 더 논리적 일 것입니다/설정지고 같은 느낌,하지만 : 그것은

  1. 인가?

  2. 쿼리 문자열을 설정할 때들을 수있는 이벤트가 있습니까?

  3. 내가 알아야 할 쿼리 문자열 관련 동작이 있습니까?

답변

1
  1. 앵커 동작을 재발 명하는 것은 비현실적입니다. 중요하지 않은 조각에 해시 링크를 노출하지 않는 것이 좋습니다 (최신 브라우저가 id 인 모든 요소에 대해 scrollIntoView()을 수행하고 있지만 <a name="xxx"> 전용 동작이 있음). 따라서 대답은 예입니다. 페이지 인수는 쿼리 문자열을 통해 전달되어야합니다. http://xkr.us/js/querystring

    :
  2. 이벤트 javascript:void(location.search='some')있다 가 쿼리 문자열 작업에 대한, 또한 look

을 가지고

  • 더 놀라움이 없습니다 설정 예, 페이지를 다시로드, window.beforeunload입니다
  • 1

    당신이하는 일에 따라 다릅니다.

    쿼리 문자열을 변경하면 항상 페이지가 다시로드됩니다. 페이지를 다시로드하지 않고 변경할 수있는 URL의 유일한 부분은 # -part입니다.

    자바 스크립트 애플리케이션에서 페이지로드는 일반적으로 좋지 않습니다. 그러나 전통적인 html 페이지 요청/응답 모델을 사용할 때 사용하는 것이 가능할 수 있습니다.

    페이지가 변경되므로 AFAIK 이벤트는 없습니다.

    1

    다른 답변에서 말한 것처럼 쿼리 문자열을 변경하면 페이지가 다시로드됩니다. 브라우저에 관한 한 완전히 새로운 페이지가 될 것입니다.

    이렇게하면 실행되는 이벤트가 있습니다. 'beforeunload` 이벤트는 발생하지만 사용자가 링크를 클릭하거나 창을 닫을 때 발생하므로 매우 유용하지는 않습니다.

    효과적으로 쿼리 문자열을 변경하면 실행되는 이벤트는로드되는 새 페이지의로드 이벤트가됩니다.

    관련 문제