2012-11-03 5 views
0

내 HTML/PHP- 템플릿에서 JavaScript를 피하고 싶습니다. 내 외부 JS-File에 base/root-URL이 필요하지 않은 한 모든 것이 잘 작동합니다.JavaScript : 절대 Base-URL을 얻는 방법?

문제 : 누구나 JS 논리 (아래 코드)를 외부 JS 파일에 넣을 수있는 해결책을 알고 있습니까? 주요 문제 : _BASE_URL_을 (를) 파악하는 방법? 불행하게도 action 속성에 의해 URL을 얻을 수있는 형식이 아닙니다. JS/PHP 혼합 파일을 컴파일하고 싶지 않습니다. 순수한 JS 여야합니다.

아이디어 (도 더러운) : ID = "root_url"와 체내 태그 또는 주 JS 파일 변수의 상단에 숨겨진 입력 : root_url = "HTTP : // 로컬 호스트/프로젝트/프로젝트 /번역/". 독립 실행 형 파일이 없기 때문에이 오류가 발생하기 쉽습니다.

어쩌면 좋은 htaccess/mod_rewrite 솔루션이 있습니까?

알림 : 서브 폴더에서도 작동해야하기 때문에 호스트 이름 또는 "실제"루트 디렉토리를 가져 오지 않습니다.

코드 : 사전에

<script type="text/javascript"> 
// document ready 
$(function() { 
    // function: load items 
    function load_items() { 
     $("#items").load("<?php echo _BASE_URL_?>/items.php"); 
    } 

    // load items! 
    load_items(); 
}); 
</script> 

<!-- target div --> 
<div id="items">loading</div> 

감사합니다!

답변

3

내가 당신의 HTML 구조 볼 수

function getBaseURL() { 
    return location.protocol + "//" + location.hostname + (location.port && ":" + location.port) + "/"; 
} 

당신은 또한 경로가이

path = window.location.pathname.split('/'); 
console.log(path); 
+0

귀하의 기능이 더 잘 작동하는 것처럼 사용할 수있는 사용이 필요한 경우 이와 같은 것 : http://stackoverflow.com/a/11775016/1431728. – JohnK

0

우리는이

function getBaseURL() { 
    return location.protocol + "//" + location.hostname + location.pathname; 


} 
관련 문제