2013-04-16 3 views
0

jQuery를 사용하여 탐색 파일의 내용을 가져 와서 내 페이지 일부에서 div에로드합니다.jQuery로드를 통해 GET을 보낼 때 변수를 사용할 수 없습니다.

페이지 이름을 포함하는 값을 제공하여 탐색에서 "활성"클래스를 업데이트 할 수 있습니다.

GET 정보를 표시하기 위해 사용하는 코드는 다음과 같습니다. 이것은 브라우저에서 변수 (예 : header.html? page = foo)를 전달할 때 완벽하게 작동합니다. 완벽하게 작동합니다.

<script> 
    function getQueryParams(qs) { 
     qs = qs.split("+").join(" "); 
     var params = {}, 
      tokens, 
      re = /[?&]?([^=]+)=([^&]*)/g; 
     while (tokens = re.exec(qs)) { 
      params[decodeURIComponent(tokens[1])] 
       = decodeURIComponent(tokens[2]); 
     } 
     return params; 
    } 
    var $_GET = getQueryParams(document.location.search); 
    alert($_GET["page"]); 
</script> 

현재 알 수 있듯이 값과 함께 경고가 표시됩니다. 나는이 페이지를 호출 오전하는 경우로

은, 그것은는 간단합니다 .load에서 호출 때 "정의되지 않은"으로 돌아 오는 이유로 내가 이해할 수없는 내 인생

<script> 
    $("#header").load("header.html?page=bar"); 
</script> 

I GET 변수로 여러 번 사용했습니다.

어떤 입력이라도 크게 감사하겠습니다.

Kris

+0

AJAX 호출이므로 응답과 관련된 새로운 '문서'가 없습니다. 이 스크립트가 참조하는'document.location.search'는 호출하는 페이지의 'document.location.search'와 같습니다.'page' 매개 변수가 없다고 가정합니다. –

답변

0

자바 스크립트가 .load에 의해 실행될 때 document은로드중인 페이지가 아니라 원본 문서입니다.

로드 할 스크립트에 매개 변수를 전달하려면 전역 변수를 사용하십시오.

+0

아하, 그건 나에게 의미가있다. 서버 측 스크립팅 언어를 사용하지 않고이를 수행 할 수있는 방법이 있습니까? 이론적으로 JS가 해당 페이지에로드되는 경우 변수를 참조 할 수 있습니다. –

+0

쿼리 매개 변수를 전역 변수에 넣고 JS가 해당 변수를 검사하도록합니다. – Barmar

+0

그 덕분에 많은 도움이되었습니다. 그 때문에 나이가 들었습니다. –

관련 문제