2010-06-21 4 views
14

사이트의 모든 웹 페이지 (head 요소에 있음)에 jQuery 코드가 있습니다.특정 웹 페이지에서만 함수를 실행하도록 jQuery에 지시하려면 어떻게해야합니까?

특정 기능은 사이트의 다른 모든 페이지가 아닌 한 페이지에서만 실행되어야한다고 jQuery에 알려주는 데 사용할 수있는 선택기 구문은 무엇입니까?

선택기에서 페이지 이름이나 URL을 어떻게 든 지정할 수 있습니까?

많은 감사

+0

이 사이트의 페이지 코드에는 식별 ID 또는 클래스 (또는 이름이 없음)가 없습니다. 하지만 당신의 아이디어와 .. 그것은 바보 쉬운 ... pathname에 대한 조건부 테스트를하고 나서 그냥 해 .. 고마워, 친구들 ... – Joseph

답변

23

top 문법을 사용하여 if 문을 검사 할 수 있습니다.

if (top.location.pathname === '/my/path') 
{ 
    /* magic ... */ 
} 

또는 당신은 더 휴대하고 문 어떤 의미 (그래서 그것에 대해 무엇을 알 읽는 사람)의 경우 실제를 제공하려는 경우 - 문서의 본문 요소에 액세스 할 수있는 경우, 당신은 할 수 이 스크립트를 실행할 것을 나타내는 클래스를 추가하십시오.

$(function() // on document.ready() 
{ 
    if ($('body.has-facebook-api').length > 0) 
    { 
     /* magic ... */ 
    } 
}); 

이 있는지 확인 : 위의 예에서 /* magic ... */는 페이스 북의 API를 포함하여 함께 할 수있는 뭔가가있는 경우

그래서 예를 들어, 당신은 당신의 몸은 <body class="has-facebook-api"> 같이하고 jQuery로 확인을 할 수 있습니다 별도의 스크립트 태그 안에 jQuery를 포함하여 실행됩니다.


당신이이 출력되기 전에 페이지의 영상을 변환하려면이 스크립트를 사용하지 않는 경우 우리는 그것을있는 동안, 나는 가까운 스크립트 태그의 전부 또는 대부분을 배치하는 조언을 것 페이지를 더 빨리 렌더링하려면 바닥 글을 사용해야합니다.

+3

나는 body 태그에 클래스 또는 ID를 추가하고 거기에서가는 것이 좋습니다. 이렇게하면 사이트 나 파일 구조를 이동하더라도 여전히 작동합니다. –

+1

나는 css/js에 대한 글로벌 헤드 요소 이외에 아무것도 액세스 할 수 없다. 그래서 내가 추가하는 것은 모든 페이지에서 동일하다. 그러므로 어떤 페이지가 타겟인지를 알 필요가있다. 그러나 나는 해결책이 있다고 생각한다. 이 모든 위대한 생각에 숨어 있습니다. 고맙습니다. – Joseph

1

어쩌면 window.location.pathname을 확인?

if (window.location.pathname == "/path/to/page.html") { 
    callFunction(); 
} 
0

당신은 jQuery를 선택기에서 현재 URL을 지정할 수 없습니다, 당신은 그러나 document.location 개체를 사용하여 간단한 검사를 작성할 수 있습니다

if (document.location.pathname == "/somefolder/somepage") { 
    // do some special stuff on this page! 
} 
0

난 당신이 어떤 언어를 작성하는이 같은 물건을 선호하는 당신 에서 응용 프로그램. 레이아웃/템플릿 /이 당신의 HTML을 제공하고있다 무엇이든지 할 수 거짓/진정한 단순히 출력 자바 스크립트 변수

if ($page = '/foo/bar.html/') { 
    echo 'baz = true'; 
} else { 
    echo 'baz = false'; 
} 

그런 다음 당신이이 기능을 실행하지해야하는지 여부를 결정하기 위해 JS 체크 바즈가 . 이 경우 js에 100 % 의존하지 않지만 더 좋습니다. 당신의 서버는 당신이 어떤 페이지/URL인지를 항상 알게 될 것이고, js가 그것의 상주하는 페이지를 결정하려고 할 때 브라우저의 비 호환성에 대해 걱정할 필요가 없을 것이다.

관련 문제