2012-02-15 4 views
-1

나는 JavaScript와 AJAX로 작업 중이다. AJAX 함수 중 하나가 URL 끝에 "#"기호를 추가합니다. 이 함수는 작동하지만,이 함수 만이 다른 함수가 아닌 그 부호를 추가하는 이유를 알고 싶습니다. "#"기호가 앞으로 몇 가지 문제를 일으킬 수 있습니까?"#"sign on URL

+0

ajax 함수를 직접 작성 했습니까? 또는 도서관에서? 더 구체적으로하십시오 – paislee

+0

JS 프레임 워크를 사용하고 있습니까? 우리는 당신이 어떤 기능을 사용하고 있는지 알지 못한다면 말할 수 없습니다. –

+0

힌트 : [... 15/sign-on-url # footer] (http://stackoverflow.com/questions/9299815/sign-on-url#footer) : P – Andrew

답변

2
  1. 의 URL에 # 기호가 해시 기호를 불러 페이지의 앵커에서 URL을 분리하는 경향이있다, 은 그래서 당신은 페이지의 일부로 이동 가기뿐만 아니라 수 페이지의 너무 쉽게합니다 (history API를 사용하지 않고 다시을 갈 수있는 AJAX 세계에서

  2. ,이 또한 현재 페이지를 유지하는 데 사용할 수 있습니다 당신은 (페이지가로드 될 때 비동기) 어디에서 왔는지를 쉽게 알 수 있습니다 당신은 쉽게 알 수 http://domain.com/page2.htm#page1.htm 같은 URL에이 기술을 사용 jQueryMobile의 알파 버전)

  3. 당신은 document.location.hash

  4. 를 사용하여 온 않는 곳에 있지만, 일반적으로은 시간과 앵커 태그를 가진 간단하다 ash as href like <a href="#">click here</a> 마녀 normaly는 anchor 태그가 링크처럼 행동하지만 아무데도 움직이지 않는 것을 알기위한 간단한 트릭입니다. URL에 글을 쓰고 싶지 않으면 단순히 false을 반환해야합니다. 앵커 링크는 # (마녀가 현재 페이지 임)으로 점프하지 않습니다.

현재이 코드는 어떤 식 으로든 코드 또는 향후 코드로 엉망이되지는 않습니다. 단지 나쁜 습관 일뿐입니다.

+1

+1 # 4의 메모 : jQuery에서 false를 반환하면 이벤트의 버블 링이 방지됩니다. 버블 링을 계속하고 href 속성에서 URL을 탐색하지 않으려면 대신 [event.preventDefault()] (http://api.jquery.com/event.preventDefault/)를 사용할 수 있습니다. [이 질문] (http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false) 좋은 참조입니다. – grossvogel

+1

@grossvogel 자바 스크립트 프레임 워크에 관한 내용은 ** mootols ** 또는 ** jQuery ** 이외의 다른 것들을 사용하고 싶지 않았습니다. 여러분이 말하는 내용은 jQuery에만 적용됩니다. 각 프레임 워크는 False를 반환하는 자체 구현이므로 ... – balexandre

2

대부분은 #을 추가하는 자바 스크립트가 아니라 자바 스크립트를 트리거하기 위해 클릭하는 링크입니다.

많은 사람들은 다음과 같이 할 것입니다 : 텍스트 링크처럼 나타납니다

<a href="#" onclick="something()">text</a> 

이 방법을하지만, 링크를 클릭하면 멀리 페이지에서 사용자를 고려하지 않습니다 일부 자바 스크립트를 실행합니다. 부작용은 #이 URL에 추가되고 사용자가 화면의 상단으로 스크롤된다는 것입니다.

1

URL의 해시 기호 (#) 뒤에 오는 부분을 조각이라고합니다.

처음에는 HTML 문서의 로컬 앵커 용이었습니다.

그러나 일반적으로 브라우저에서 뒤로 버튼을 사용할 수 있도록 히스토리 상태를 유지할 수 있도록 AJAX 응용 프로그램에서도 사용됩니다.

예를 들어 jQuery BBQ plugin을 사용하면 매개 변수를 읽고/설정하고 (URL에서 ? 이후의 매개 변수를 쿼리 매개 변수와 유사하게) 매개 변수의 변경 사항을 모니터링하여 전체 페이지를 다시로드하지 않고도 다른 작업을 트리거 할 수 있습니다.

는 또한, <a /> 링크 (CSS 표기법 단위) :link로 인식하기 위해서는 비어 href 속성이 있어야합니다.일반적으로 href="#"이 사용되며 끝에 URI가 있거나없는 URI가 동등하기 때문입니다. 해시 자체를 포함하여 # 이후의 모든 내용은 페이지 요청의 일부로 서버에 전송되지 않습니다.

1

#은 페이지의 특정 명명 된 요소에보기를 중앙에 배치하기 위해 브라우저를 지정하는 데 사용됩니다 . 예를 들어

: "#" sign on URL

는 또한, # 후 아무것도 GET 매개 변수를 통해 서버에 전달되지 않습니다.

관련 문제