경로 관련 문제에 대해 이야기 할 때 모든 사람은 Window.location에 대해 생각할 것입니다. 이 객체는 많은 경로 정보를 제공하는 것이 사실이며, 일반적으로 사용되는 개체에는 다음이 포함됩니다.
1. location.href : 현재 페이지의 전체 URL
2.location.pathname : 현재 URL의 경로 이름입니다
3.location.hash : 현재 URL의 앵커 포인트
4. location.search : 현재 URL의 쿼리 매개 변수
그러나 위치에는 현재 디렉토리의 절대 경로를 직접 얻는 속성이 없습니다 (파일 이름 제외). Google을 통해 URL을 "/"를 통해 배열로 분리하고 배열의 마지막 항목을 제거한 다음 문자열로 연결하는 등의 잘못된 방법을 찾았습니다. 그러나 URL에 파일 이름이 지정되지 않은 경우 결과는 큰 실수입니다.
이전 코딩 경험에 따르면 A 요소의 HREF 속성은 항상 절대 경로를 반환하므로 상대 경로를 절대 경로로 변환 할 수 있습니다. 다음 코드로 시도했는데 다음과 같습니다.
코드 사본은 다음과 같습니다.
var a = document.createelement ( 'a');
a.href = './';
경고 (a.href);
a = null;
불행히도,이 방법은 이전 IE 6/7에서 작동하지 않으며 Alert (a.href)가 실행되면 팝업이 여전히 "./"입니다. 나중에 누군가가 StackoverFlow 에서이 문제를 제기 한 것을 발견했으며 솔루션도 매우 간단합니다. innerhtml을 통해 주입합니다.
코드 사본은 다음과 같습니다.
var div = document.createelement ( 'div');
div.innerhtml = '<a href = "./"> </a> ";
경고 (Div.FirstChild.href);
div = null;
누군가가 물어볼 수 있습니다 : 정기적 인 표현을 사용하지 않는 이유는 무엇입니까? 내 대답은 : 파일 이름, 앵커 포인트 및 쿼리 매개 변수가 있는지 여부를 고려할 때이 정규식은 상당히 복잡 할 수 있습니다.