2010-07-08 1 views
5

그래서 JavaScript를 사용하여 독점 CRM에서 페이지 유형을 결정해야합니다. 페이지 유형을 결정하는 유일한 방법 (즉, 프런트 엔드의 유일한 일관성있는 차이점)은 src 속성이/modules /로 시작하는 스크립트 태그 (많은 목록 중에서)를 검사하는 것입니다. 헤더에 다스 정도의 스크립트 태그의 목록에서 스크립트 태그에서 src 특성 추출 및 특정 일치 내용에 따라 구문 분석

는, 각 페이지가있다, 스크립트 태그의 순서가 결코 동일하지

<script src="/modules/example/includes/sample.js" type="text/javascript"></script> 

이제 다음과 같은 형식의 라인을 가지고 있지만, 항상/modules/blah를 가진 하나의 스크립트. 내 스크립트에 blah를 추출해야 어떤 페이지인지 감지 할 수 있습니다.

그래서 JavaScript 나 jQuery를 사용하여 src가/modules로 시작하는 스크립트 태그의 src 값을 추출하고 그 값을 javascript 변수로 (위의 예제에서 'example') 저장합니다. ?

답변

14

글쎄, 모든 스크립트 요소를 수집하여 시작할 수 있습니다.

var scripts = $("script[src]"); 

... 및 더 srcattribute beginning with "/ 모듈들에게로 제한 : jQuery로, 즉

var scripts = $("script"); 

는 그때 src 속성이있는 요소에 해당 세트를 제한 간단한

로의/"당신이 지금를 당길 수있는 단 하나 개의 요소의 집합 발생한다하여 설명하면 다음과 같다

var scripts = $("script[src^='/modules/']"); 

...속성 값 자체 :

var path = $("script[src^='/modules/']").attr('src'); 

좋아, 그건 쉬웠다 - 이제 경로의 다음 부분을 추출 할 수 있습니다. 이렇게하려면 여러 가지 방법이 있지만 split은 빠릅니다 & 벙어리 : 구분 기호로 '/'를 사용하여 파트 배열을 만든 다음 세 번째 요소 ("modules"다음에 오는 요소)를 선택하십시오.

var pathPart = $("script[src^='/modules/']").attr('src').split('/')[2]; 

물론,이 모든 당신이 예제로 사용하고있는 스크립트 경로의 정확한 형식으로 매우 구체적이지만, 그것은 당신에게 시작하는 방법에 대한 좋은 아이디어 ...

+0

감사를 제공해야합니다! 방금 제 3의 예를 보았습니다. 마지막 하나를위한 고비를 극복하기 위해 개최 된 필요. – Yahel

+0

@yc : 조금 더 확장했습니다 ... – Shog9

관련 문제