여기에 소개는 본질적으로 JavaScript를 통해 DOM을 만들거나 컴퓨팅을 통해 두 가지 방법입니다.
1) 새로 생성 된 이미지를 통해 테스트 후 낙태가 전송되며 IE6은 새로운 이미지를 문서화로 변경하는 데 적합하지 않습니다 ;
코드 사본은 다음과 같습니다.
함수 getAbsoluteurl (url) {
var img = new Image ();
img.src = url; // 이미지로 상대 경로를 설정하면 요청이 전송됩니다.
url = img.src; // 상대 경로는 절대적인 경로가되었습니다.
img.src = null; // 요청을 취소합니다
반환 URL;
}
getabsoluteurl ( "쇼룸/목록");
2) 앵커를 작성하십시오 (링크)은 요청이 없습니다 (요청은 DOM에 가입 할 때 생성됩니다).
코드 사본은 다음과 같습니다.
/ *jslint regexp : True, White : True, Maxerr : 50, 들여 쓰기 : 2 */
함수 parseuri (url) {
var m = string (url) .replace (/^/s+|/s+$/g, '') .match (/^([^: //?#]+:)? (/// (? :? :? : [^:@]*(? :: [^:@]*)?@)? ([[[^: //?#]*) (? :: (/d*)))))? ([^ ?#]*) (/? [^#]*)? (#[/s/s]*)?/);
// 권위 = '//' + user + ':' + pass '@' + hostname + ':'포트
반환 (m? {
HREF : M [0] ||
프로토콜 : m [1] ||.
권한 : m [2] ||
호스트 : m [3] '',
호스트 이름 : m [4] ||
포트 : M [5] '',
PathName : M [6] ||
검색 : M [7] '',
해시 : M [8] ||
} : null);
}
함수 절대 우리 (base, href) {// rfc 3986
함수 removedOtSegments (입력) {
var output = [];
input.replace (/^(/./.?(// | $))+/, '')
.replace (///(/.// | $))+/g, '/')
.replace (///./.$/, '/../')
.replace (///? [^//]*/g, function (p) {
if (p === '/..') {
output.pop ();
} 또 다른 {
output.push (p);
}
});
return output.join ( ''). 교체 (/^///, input.charat (0) === '/'? '/': '');
}
href = parseuri (href || '');
base = parseuri (base || '');
ref! href ||
(href.protocol || href.authority? href.authority : base.authority) +
removedOtsegments (href.protocol || href.authority || href.pathname.charat (0) === '/'? href.pathname : (href.pathname? (base.authority &&! base.p athname? '/ ':' ') + base.pathname.slice (0, base.pathname.lastindexof ('/') + 1) + href.pathname) : base.pathname)) +
(href.protocol || href.authority || href.pathname? href.search : (href.search || base.search)) +
href.hash;
}
우리의 제품은 모바일 웹 페이지이기 때문에 더 이상 IE6을 지원하지 않으며 두 번째 솔루션이 마침내 사용됩니다.
원래 방법을 사용하여 모든 이미지와 앵커에 액세스 할 때 반환 된 절대 경로는 모두 원래의 상대 경로를 반환하려면 DOM을 쿼리하는 방법을 사용할 수 있습니다. jQuery.attr () 메소드 :
코드 사본은 다음과 같습니다.
// 절대 경로를 반환하면 jQuery 객체는 본질적으로 "클래스 배열"구조 (인수와 유사)이므로 [0]을 사용하여 원래 객체에 액세스 한 다음 "href"를 사용할 수 있습니다.
console.log ($ 앵커 [0] [ "href"]);
// 원래 경로로 돌아갑니다
console.log ($ anchor.attr ( "href"));