저는 정말 자바 스크립트에 익숙하며 다음을 수행하는 방법을 이해하는 데 어려움을 겪고 있습니다. 제 목표는 페이지가로드 될 때 특정 자바 스크립트 액션을 실행하고 URL 끝에 추가 된 변수가 어떤 자바 스크립트 액션을 실행할 지 결정하는 것입니다. 이것을 구현하고자하는 페이지의 URL은 http://www.morgantoolandsupply.com/catalog.php입니다. 자바 스크립트로 구동되는 '+ 확장'버튼 각각은 페이지의 특정 영역을 드롭 다운합니다. 궁극적으로, 페이지가로드 될 때 특정 카테고리를 자동으로 드롭 다운하는 URL을 생성하고 싶습니다. 아무도 나에게이 일을 설명 할 수 있겠습니까? 어떤 도움을 주셔서 미리 감사드립니다!URL에 변수를 사용하여 자바 스크립트 코드를 실행하는 방법
답변
이미 함수가 호출 할 수있어 : toggle2()
를, 마지막 숫자를 제외한 모든 범주에 대한 동일 할 일이 두 가지 매개 변수를 사용한다. 해당 번호가 포함 된 URL을 만드십시오. http://www.morgantoolandsupply.com/catalog.php#cat=4
그런 다음 location.hash
에 정규 표현식을 사용하여 찾으십시오. 이 URL은 여러 URL 매개 변수를 처리 할 수있을 정도로 견고하며 나중에 사용하기로 결정해야합니다 (/[\#&]cat=(\d+)/
). 그러나 URL에 다른 것을 추가하지 않으려는 경우 /(\d+)/
과 같은 매우 단순한 URL을 사용할 수 있습니다. 당신이 수를했으면
, 그것은 당신의 두 개의 매개 변수를 만들려면 해당 번호를 사용하고 toggle2()
를 호출하는 간단한 문제입니다.
이 작동합니다 :
window.onload = function() {
if (/[\#&]cat=(\d+)/.test(location.hash)) {
var cat = parseInt(RegExp.$1);
if (cat > 0 && cat < 13) {
toggle2("toggle"+cat, "displayText"+cat);
}
}
}
이것은 완벽하게 작동했습니다! 도와 주셔서 정말 감사합니다! – user924650
당신은 그들이 서버 측 스크립트에있는 것처럼 URL에 매개 변수가 자동으로 (PHP의 $_GET
을 통해 예를 들어,), 자바 스크립트로 전달되지 않기 때문에
한 다소 "수동"URL을 구문 분석해야 방법은 URL 조각 식별자, 즉 끝에 갈 수있는 "#something"비트를 사용하는 것입니다. 이것은 아마도 조각이 서버로 전송되지 않기 때문에, 그 일의 산뜻한 방법이다, 그래서는 다른 매개 변수
// window.location.hash is the fragment i.e. "#foo" in "example.com/page?blah=blah#foo"
if(window.location.hash) {
// do something with the value of window.location.hash. First, to get rid of the "#"
// at the beginning, do this;
var value = window.location.hash.replace(/^#/,'');
// then, if for example value is "1", you can call
toggle2('toggle' + value , 'displayText' + value);
}
의 URL에 "http
와 혼동되지 않습니다 //www.morgantoolandsupply. com/catalog.php # 1 "은 자동으로"toggle1 "요소를 확장합니다.다른 방법으로는 (즉 "? foo는 = 바")
var parameter = window.location.search.match(/\bexpand=([^&]+)/i);
if(parameter && parameter[1]) {
// do something with parameter[1], which is the value of the "expand" parameter
// I.e. if parameter[1] is "1", you could call
toggle2('toggle' + parameter[1] , 'displayText' + parameter[1]);
}
window.location.search
는 매개 변수, 물음표에서 끝까지 또는 URL 조각을 즉 모든 것을 포함하는 일반적인 GET 매개 변수를 사용할 수 있습니다. URL이 "example.com/page.php?expand=foo"인 경우 parameter[1]
은 "foo"와 같습니다. 따라서 URL "http://www.morgantoolandsupply.com/catalog.php?expand=1"은 "toggle1"요소를 확장합니다.
URL의 숫자보다 더 자세한 설명이 필요한 경우 (예 : "#abrasives"또는 "# 1"대신 "abrasive"확장 또는) "= 1 확장"하지만 기존 페이지의 약간의 조정이 필요, 그래서 모든 것을) "사람에게 물고기를주고"(나중에
조각에 여분의 물건을 채우고'window.location.hash'를 보면 클라이언트 측 솔루션에 더 좋을 수도 있습니다. –
@muistooshort : Heh, 나는 당신이 코멘트하고있는 동안 정확히 그 제안을 내 대답을 업데이트하고 있었다. :) 그리고 동의한다. 조각을 사용하는 것이 나의 선호하는 해결책이기도하다. 하지만 처음에 내 대답을 쓸 때 GET 매개 변수에 너무 매달 렸습니다. – Flambino
하지 완전한 대답을 떠날,하지만 당신은 시작할 수 있습니다 이 줄을 따라 뭔가 :
// entire URL
var fullURL = window.location.href;
// search string (from "?" onwards in, e.g., "www.test.com?something=123")
var queryString = window.location.search;
if (queryString.indexOf("someParameter") != -1) {
// do something
}
window.location에 대한 자세한 정보는 Mozilla 개발자 네트워크에서 제공하고 있습니다.
그런데, 당신이 PHP 페이지에 대해 이야기하고 있다고 가정 할 때 왜 어떤 서버 측 PHP를 사용하여 동일한 결과를 얻지 못합니까?
- 1. 자바 스크립트 변수를 사용하여 양식을 제출하는 방법
- 2. 자바 빌드 코드를 사용하여 작업을 실행하는 앤트 빌드 스크립트
- 3. 자바 스크립트 전역 변수를 사용하여
- 4. 자바에 자바 스크립트 변수를 할당하는 방법
- 5. 다음 코드를 살펴보세요 자바 스크립트
- 6. URL에 텍스트가 포함되어 있는지 확인하십시오 (자바 스크립트)
- 7. HTML에 자바 스크립트 코드를 동적으로 포함하는 방법
- 8. 자바 스크립트 코드를 암호화
- 9. 코드를 사용하여 브라우저 자바 스크립트 사용
- 10. html 파일의 모든 부분에서 자바 스크립트 코드를 실행하는 방법은 무엇입니까?
- 11. 웹 페이지에서 임의의 자바 스크립트 코드를 실행하는 방법은 무엇입니까?
- 12. Mac에서 매개 변수를 사용하여 스크립트를 실행하는 방법?
- 13. jQuery 코드를 실행하는 방법
- 14. 자바 스크립트 : window.opener에 변수를 경고하는 방법
- 15. 기본 자바 스크립트/jQuery : 변수를 반환하는 방법
- 16. 변수를 자바 스크립트 함수 안에 넣는 방법?
- 17. 자바 스크립트 변수를 현명한 변수에 할당하는 방법
- 18. 이 다음과 같은 코드를 사용하여 자바 스크립트 개인 방법
- 19. Ruby 삽입물에 자바 스크립트 코드를 삽입하는 방법
- 20. 자바 스크립트 코드를 구성하는 가장 좋은 방법
- 21. 효과를 얻으려면 자바 스크립트 코드를 작성하는 방법?
- 22. cakePHP보기에서 자바 스크립트 코드를 추가하는 방법
- 23. 자바 스크립트 변수를 PHP로 긁기
- 24. 자바 스크립트 변수를 수정하려면 어떻게해야합니까?
- 25. 일부 자바 스크립트 코드를 디버깅하려면
- 26. 자바 스크립트 변수를 보내어 PHP 스크립트
- 27. 자바 스크립트 : 지역 변수를 통해
- 28. URL에 해시 매개 변수를 읽는 방법
- 29. 자바 스크립트 코드를 하나씩 실행하기
- 30. 자바 스크립트 코드를 작성하는 라이브러리
감사합니다 모든 사람을이를 통해 나를 도와! 나는 며칠 동안 해결책을 찾기 위해 애를 썼지 만 모든 답변이 정확하게 어떻게 작동해야하는지 정확하게 이해했다. – user924650