Rumah  >  Artikel  >  hujung hadapan web  >  Cara menggunakan teg A untuk mendapatkan laluan mutlak direktori semasa dalam petua Javascript_javascript

Cara menggunakan teg A untuk mendapatkan laluan mutlak direktori semasa dalam petua Javascript_javascript

WBOY
WBOYasal
2016-05-16 16:11:441722semak imbas

Apabila bercakap tentang isu berkaitan laluan, semua orang akan memikirkan window.location Sesungguhnya, objek ini menyediakan banyak maklumat laluan, antaranya yang biasa digunakan termasuk:

1.location.href: URL lengkap halaman semasa
2.location.pathname: Nama laluan dalam URL semasa
3.location.hash: Titik utama
dalam URL semasa 4.location.search: parameter pertanyaan dalam URL semasa

Walau bagaimanapun, lokasi tidak mempunyai atribut yang boleh terus mendapatkan laluan mutlak direktori semasa (tidak termasuk nama fail). Melalui Google, saya menemui beberapa kaedah yang salah, seperti memisahkan URL ke dalam tatasusunan melalui "/", mengalih keluar item terakhir tatasusunan dan kemudian menggabungkannya menjadi rentetan. Tetapi jika nama fail tidak dinyatakan dalam URL, hasilnya adalah salah sama sekali.

Berdasarkan pengalaman pengekodan yang lalu, atribut href bagi elemen akan sentiasa mengembalikan laluan mutlak, yang bermaksud ia mempunyai keupayaan untuk menukar laluan relatif kepada laluan mutlak. Saya mencubanya menggunakan kod berikut, dan ia berjaya:

Salin kod Kod adalah seperti berikut:

var a = document.createElement('a');
a.href = './';
makluman(a.href);
a = null;

Malangnya, kaedah ini tidak sah di bawah IE 6/7 lama Apabila amaran(a.href) dilaksanakan, "./" masih muncul. Kemudian, saya mendapati bahawa seseorang juga telah bertanya soalan ini pada Stackoverflow, dan penyelesaiannya adalah sangat mudah. ​​Hanya suntikan melalui innerHTML:
Salin kod Kod adalah seperti berikut:

var div = document.createElement('div');
div.innerHTML = '";
makluman(div.firstChild.href);
div = null;

Seseorang mungkin bertanya: Mengapa tidak menggunakan ungkapan biasa? Jawapan saya ialah: Anda perlu mempertimbangkan sama ada terdapat nama fail, sama ada terdapat titik sauh, dan sama ada terdapat parameter pertanyaan Ungkapan biasa ini mungkin agak rumit.
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn