บทนำที่นี่เป็นสองวิธีโดยการสร้าง DOM หรือการคำนวณผ่าน JavaScript:
1) ผ่านภาพที่สร้างขึ้นใหม่คำขอที่ถูกยกเลิกจะถูกส่งหลังจากการทดสอบและ IE6 ไม่รองรับ ;
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น getabsoluteurl (url) {
var img = ภาพใหม่ ();
img.src = url;
url = img.src;
img.src = null;
url กลับ;
-
getAbsoluteurl ("โชว์รูม/รายการ");
2) สร้างจุดยึด (ลิงก์)
การคัดลอกรหัสมีดังนี้:
/ *JSlint regexp: true, White: True, Maxerr: 50, Intent: 2 */
ฟังก์ชั่น parseuri (url) {
var m = string (url) .replace (/^/s+|/s+$/g, '') .match (/^([^: //?#]+:) (//// (?:? [^:@]*(? :: [^:@]*)?@)? (([^: //?#]*) (? :: (/d*))?))? ([^ ?#]*) (/? [^#]*)? (#[/s/s]*)?/);
// ugeide = '//' + user + ':' + pass '@' + hostname + ':' พอร์ต
return (m? {
Href: M [0] ||
โปรโตคอล: M [1] ||
ผู้มีอำนาจ: M [2] || '
โฮสต์: M [3] || '
Hostname: M [4] ||
พอร์ต: M [5] || '
Pathname: M [6] ||
ค้นหา: M [7] || '
แฮช: M [8] ||
} : โมฆะ);
-
ฟังก์ชั่น Absoluteuri (base, href) {// rfc 3986
ฟังก์ชั่น removedotsegments (อินพุต) {
var output = [];
input.replace (/^(//./.?(// | | $))+/, '')
.replace (///(/( /// | $))+/g, '/')
.replace (////./.$/, '/../')
.replace (///? [^//]*/g, ฟังก์ชั่น (p) {
if (p === '/.. ') {
output.pop ();
} อื่น {
output.push (p);
-
-
return output.join (''). แทนที่ (/^///, input.charat (0) === '/'? '/': '');
-
href = parseuri (href || '');
base = parseuri (ฐาน || '');
กลับมา! Href ||!
(href.protocol || href.authority? href.authority: base.authority) +
RemovedotSegments (href.protocol || href.authority || href.pathname.charat (0) === '/'? href.pathname: (href.pathname? ':' ') + 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 อีกต่อไปและในที่สุดก็ใช้โซลูชันที่สอง
จะเห็นได้ว่าเมื่อเข้าถึงภาพและจุดยึดทั้งหมดโดยใช้วิธีดั้งเดิมเส้นทางที่ได้รับการส่งคืนจะเป็นทั้งหมด jQuery.attr () วิธี:
การคัดลอกรหัสมีดังนี้:
// ส่งคืนเส้นทางสัมบูรณ์วัตถุ jQuery เป็นหลักโครงสร้าง "อาร์เรย์คลาส" (คล้ายกับอาร์กิวเมนต์) ดังนั้นคุณสามารถใช้ [0] เพื่อเข้าถึงวัตถุต้นฉบับแล้วใช้ "href";
console.log ($ anchor [0] ["href"]);
// กลับไปที่เส้นทางดั้งเดิม
console.log ($ anchor.attr ("href"));