Saat berbicara tentang masalah yang berhubungan dengan jalur, semua orang akan memikirkan Window.location. Memang benar bahwa objek ini memberikan banyak informasi jalur, dan yang umum digunakan meliputi:
1.location.href: URL lengkap dari halaman saat ini
2.Location.PathName: Nama jalur di URL saat ini
3. Lokasi.Hash: Titik jangkar di URL saat ini
4.Location.Search: Parameter kueri di URL saat ini
Namun, lokasi tidak memiliki properti yang secara langsung memperoleh jalur absolut ke direktori saat ini (tidak termasuk nama file). Melalui Google, saya menemukan beberapa metode yang salah, seperti memisahkan URL menjadi array melalui "/", menghapus item terakhir dari array dan kemudian menggabungkannya menjadi string. Tetapi jika nama file tidak ditentukan dalam URL, hasilnya adalah kesalahan besar.
Menurut pengalaman pengkodean sebelumnya, atribut HREF dari elemen A selalu mengembalikan jalur absolut, yang berarti memiliki kemampuan untuk mengubah jalur relatif menjadi jalur absolut. Saya mencobanya dengan kode berikut dan ternyata:
Salinan kode adalah sebagai berikut:
var a = document.createElement ('a');
a.href = './';
Peringatan (A.Href);
a = null;
Sayangnya, metode ini tidak berfungsi di bawah IE lama 6/7, dan ketika waspada (A.Href) dieksekusi, pop-up masih "./". Kemudian, saya menemukan bahwa seseorang mengangkat masalah ini di Stackoverflow, dan solusinya juga sangat sederhana. Cukup suntikkan melalui binthtml:
Salinan kode adalah sebagai berikut:
var div = document.createElement ('div');
div.innerHtml = '<a href = "./"> </a> ";
peringatan (div.firstchild.href);
Div = null;
Seseorang mungkin bertanya: Mengapa tidak menggunakan ekspresi reguler? Jawaban saya adalah: Mengingat apakah ada nama file, titik jangkar, dan parameter kueri, ekspresi reguler ini mungkin cukup rumit.