JavaScript 는 상대 주 소 를 절대 주소 예제 코드 로 변환 합 니 다.

LABjs 소스 코드 를 보 았 을 때 상대 주 소 를 절대 주소 로 바 꾸 는 함수 가 있 음 을 발 견 했 습 니 다.이 를 다음 과 같이 기록 합 니 다.
 
function canonical_uri(src, base_path)
{
var root_page = /^[^?#]*\//.exec(location.href)[0],
root_domain = /^\w+\:\/\/\/?[^\/]+/.exec(root_page)[0],
absolute_regex = /^\w+\:\/\//;

// is `src` is protocol-relative (begins with // or ///), prepend protocol
if (/^\/\/\/?/.test(src))
{
src = location.protocol + src;
}
// is `src` page-relative? (not an absolute URL, and not a domain-relative path, beginning with /)
else if (!absolute_regex.test(src) && src.charAt(0) != "/")
{
// prepend `base_path`, if any
src = (base_path || "") + src;
}

// make sure to return `src` as absolute
return absolute_regex.test(src) ? src : ((src.charAt(0) == "/" ? root_domain : root_page) + src);
}
현재 페이지 주 소 는 다음 과 같 습 니 다.http://www.inspurstb.com/hzt/index.html 즉 canonicaluri("scy.js")복귀http://www.inspurstb.com/hzt/scy.js Javascript 으로 상대 경로 주 소 를 절대 경로 1 로 변환)Image 를 사용 합 니 다.테스트 를 통 해 Aborted 요청 을 보 내 고 IE6 는 지원 하지 않 습 니 다.new Image 를 document.createElement 로 변경 합 니 다.x_x_x('IMG')도 마찬가지다.테스트 는 이 방안 을 좋아 하지 않 을 것 이다.
 
function getAbsoluteUrl(url){
var img = new Image();
img.src = url; // Image,
url = img.src; //
img.src = null; //
return url;
}
getAbsoluteUrl("showroom/list");
2)Anchor(링크)를 사용 하면 어떠한 요청 도 하지 않 고 DOM 에 가입 할 때 만 요청 이 발생 하지만 IE6 도 지원 하지 않 습 니 다
 
function getAbsoluteUrl(url){
var a = document.createElement_x_x_x('A');
a.href = url; // Image,
url = a.href; //
return url;
}
getAbsoluteUrl("showroom/list");
3)자바 스 크 립 트 를 사용 합 니 다.실현 하기 가 복잡 합 니 다.여기 에는 하나의 예 가 있 습 니 다.https://gist.github.com/1088850 최종 적 으로 option 2 를 사용 하여 가 변 적 이 고 원생 태 적 인 방법 으로 모든 Image,Anchor 를 방문 할 때돌아 오 는 것 은 모두 절대 경로 입 니 다.이때 원래 의 상대 경 로 를 되 돌려 주 려 면 jQuery 의.attr()방법:console.log($anchor[0][href]])를 조회 할 수 있 습 니 다./절대 경로 로 돌아 가면 jQuery 대상 은 실질 적 으로 배열 입 니 다.하나 라 도[0]을 사용 하면 원래 생태 의 대상 을 방문 한 다음 에'href'를 취 할 수 있 습 니 다.console.log($anchor.attr("href")); //원본 경로 되 돌리 기

좋은 웹페이지 즐겨찾기