Tautan harus memiliki target HREF yang ditentukan untuk memungkinkannya menjadi objek tampilan yang dapat digunakan.
Sebagian besar browser tidak akan melewatkan JavaScript tingkat lanjut dalam
<A HREF=""
tag seperti:
<A href="JavaScript:var elem = document.getElementById('foo');"
karena tag HREF di sebagian besar browser tidak memungkinkan spasi putih, atau akan mengonversi spasi putih menjadi% 20, HEX sama dengan SPACE, yang menjadikan JavaScript Anda sama sekali tidak berguna untuk penerjemah.
Jadi jika Anda ingin menggunakan tag A HREF untuk mengeksekusi JavaScript inline, Anda harus menentukan nilai yang valid untuk HREF FIRST yang tidak terlalu rumit (tidak mengandung spasi), dan kemudian menyediakan JavaScript dalam tag atribut acara seperti OnClick , OnMouseOver, OnMouseOut, dll.
Jawaban khasnya adalah melakukan sesuatu seperti ini:
<A HREF="#" onclick="var elem = document.getElementById('foo');">Get the object</a>
Ini berfungsi dengan baik tetapi itu membuat halaman melompat ke atas karena tanda pound / tag hash menyuruhnya melakukannya.
Hanya dengan memberikan tanda pound / tanda pagar dalam tag A HREF sebenarnya menentukan jangkar root, yang selalu, secara default bagian atas halaman, Anda dapat menentukan lokasi yang berbeda dengan menggunakan menentukan atribut NAME di dalam tag A HREF.
<A NAME='middleofpage'></A>
Anda kemudian dapat mengubah tag A HREF Anda untuk melompat ke 'middleofpage' dan menjalankan JavaScript di acara OnClick, setelah itu terjadi seperti ini:
<A HREF="#middleofpage" onclick="var elem = document.getElementById('foo');">Get the object</a>
Akan ada waktu BANYAK di mana Anda tidak ingin tautan itu melompat, sehingga Anda dapat melakukan dua hal:
<A HREF="#thislinkname" name='thislinkname' onclick="var elem = document.getElementById('foo');">Get the object</a>
Sekarang itu tidak akan kemana-mana ketika diklik, tetapi itu dapat menyebabkan halaman untuk kembali pusat dari viewport saat ini. Ini tidak cantik. Apa cara terbaik untuk menyediakan javascript in-line, menggunakan A HREF, tetapi tanpa harus melakukan hal di atas? JavaScript: void (0);
<A HREF="JavaScript:void(0);" onclick="var elem = document.getElementById('foo');">Get the object</a>
Ini memberi tahu peramban untuk pergi SEKARANG, tetapi sebaliknya menjalankan JavaScript yang valid: void (0); berfungsi pertama di tag HREF karena tidak mengandung spasi, dan tidak akan diuraikan sebagai URL. Alih-alih itu akan dijalankan oleh kompiler. VOID adalah kata kunci yang, ketika diberikan dengan perameter dari 0 pengembalian TIDAK DILAKUKAN, yang tidak menggunakan sumber daya lagi untuk menangani nilai kembali yang akan terjadi tanpa menentukan 0 (itu lebih manajemen memori / ramah kinerja).
Hal berikutnya yang terjadi adalah OnClick dijalankan. Halaman tidak bergerak, tidak ada yang terjadi dengan tampilan.
javascript:
adalah salah satu dari banyak skema URI: en.wikipedia.org/wiki/URI_scheme , sepertidata:
.