Pendahuluan di sini pada dasarnya adalah dua metode, dengan membuat DOM atau komputasi melalui JavaScript:
1) Melalui gambar yang baru dibuat, permintaan yang dibatalkan akan dikirim setelah pengujian, dan IE6 tidak mendukungnya. ;
Salinan kode adalah sebagai berikut:
fungsi getAbsoluteUrl (url) {
var img = gambar baru ();
img.src = url; // atur jalur relatif ke gambar, dan permintaan akan dikirim saat ini
url = img.src; // Pada saat ini, jalur relatif telah menjadi jalur absolut
img.src = null; // Batalkan permintaan tersebut
URL pengembalian;
}
getabsoluteUrl ("showroom/list");
2) Buat jangkar (tautan).
Salinan kode adalah sebagai berikut:
/ *jslint regexp: true, white: true, maxerr: 50, indent: 2 */
fungsi parseuri (url) {
var m = string (url) .replace (/^/s+|/s+$/g, '') .match (/^([^: //?#]+:)? (//// (?: [^:@]*(? :: [^:@]*)?@)? (([^: //?#]*) (? :: (/d*))?))? ([^ ?#]*) (/? [^#]*)? (#[/s/s]*)?/);
// otoritas = '//' + pengguna + ':' + pass '@' + hostname + ':' port
return (m? {
href: m [0] ||
Protokol: M [1] ||
Otoritas: M [2] ||
Tuan rumah: M [3] ||
Hostname: M [4] ||
Port: M [5] ||
Pathname: M [6] ||
Cari: M [7] ||
Hash: M [8] ||
}: null);
}
fungsi absoluteuri (base, href) {// rfc 3986
fungsi dihapusotsegments (input) {
output var = [];
input.replace (/^(/./.?(// | $))+/, '')
.replace (///(/.(// | $))+/g, '/')
.replace (////./.$/, '/../')
.replace (///? [^//]*/g, function (p) {
if (p === '/..') {
output.pop ();
} kalau tidak {
output.push (p);
}
});
return output.join (''). Ganti (/^///, input.charat (0) === '/'? '/': '');
}
href = parseuri (href || '');
base = parseuri (base || '');
Return! 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;
}
Karena produk kami adalah halaman web seluler, mereka tidak lagi mendukung IE6, dan solusi kedua akhirnya digunakan;
Dapat dilihat bahwa ketika mengakses semua gambar dan jangkar menggunakan metode asli, jalur absolut yang dikembalikan adalah segalanya. metode jQuery.attr ():
Salinan kode adalah sebagai berikut:
// Kembalikan jalur absolut, objek jQuery pada dasarnya adalah struktur "array kelas" (mirip dengan argumen), sehingga Anda dapat menggunakan [0] untuk mengakses objek asli dan kemudian mengambil "href";
console.log ($ anchor [0] ["href"]);
// kembali ke jalur asli
console.log ($ anchor.attr ("href"));