2011-07-05 5 views
1

다른 js 파일을로드하는 기본 js 파일로 구성된 jQuery 플러그인을 개발 중입니다. 모든 파일을 'myPlugin'폴더에 넣고 주 파일을 가져 오는 페이지의 위치와 상관없이 기본 js 파일에서 다른 스크립트를 찾을 수 있기를 원합니다.jQuery 플러그인의 상대 위치 결정

location.pathname은 플러그인을로드하는 페이지의 경로를 가져 오지만, 플러그인이 자체 위치에 상대적으로 무언가를로드하도록 지시하는 방법은 무엇입니까? 다음 예에서

, 나는 그것이 pageA 또는 pageB에서로드 여부 required1.js을 찾을 수 myPlugin.js을 원하는 ...

pageA.html 
/../pageB.html 

myPlugin/ 
    -myPlugin.js (How does `myPlugin.js` find `required1.js`?) 
    -required1.js 
    -required2.js 

감사

+0

상대 경로 대신 절대 경로를 사용하는 것이 훨씬 간단합니다. –

+1

@ Henrik- 플러그인을 설치할 위치의 절대 위치를 미리 알 수있는 방법이 없습니다. – Yarin

+0

좋은 질문입니다. 또한 [RequireJS] (http://requirejs.org)와 같은 스크립트 로더를 살펴 봐야 모든 노력이 필요합니다. –

답변

1

내가 생각할 수있는 유일한 것은 발견하는 것입니다 포함 페이지의 DOM에있는 myPlugin.js에 대한 참조 :

이것은 h입니다. acky, 그리고 오류가 발생하기 쉽습니다. 난 제로 conf 솔루션이 절대적으로 필요한 경우에만 그것을 사용합니다. 그렇지 않으면 사용자가 다른 파일을 찾을 수있는 위치를 알 수 있도록 플러그인을 구성하게하십시오.

+0

이 경우 작동합니다. 보다 일반적인 해결책은 [DOM에서 마지막 스크립트 태그를 찾으십시오.] (http://stackoverflow.com/questions/2203079/get-url-for-currently-executing-javasript/2203207#2203207) (정상적인 상황에서 현재 실행중인 스크립트를 가리키는 스크립트입니다). –