Rumah  >  Artikel  >  hujung hadapan web  >  Apakah maksud javascript:void(0) dan perbezaan antara kemahiran href=# dan href=javascriptvoid(0)_javascript

Apakah maksud javascript:void(0) dan perbezaan antara kemahiran href=# dan href=javascriptvoid(0)_javascript

WBOY
WBOYasal
2016-05-16 15:32:251636semak imbas

void ialah operator dalam Javascript, yang menyatakan bahawa ungkapan akan dinilai tetapi tidak mengembalikan nilai.

format penggunaan operator batal adalah seperti berikut:

1. javascript:void (ungkapan)

2. javascript: ekspresi kosong

ungkapan ialah ungkapan standard Javascript untuk dinilai. Tanda kurung di luar ungkapan adalah pilihan, tetapi merupakan amalan yang baik untuk ditulis.

Anda boleh menentukan hiperpautan menggunakan operator void. Ungkapan akan dinilai tetapi tiada apa yang akan dimuatkan ke dalam dokumen semasa.

Contoh - Mengklik hiperpautan tidak melompat

1:6b0da6d38e340e6a590cff29d8e276f55db79b134e9f6b82c0b36e0489ee08ed

2:0408054196e655f677973fb4d7c998655db79b134e9f6b82c0b36e0489ee08ed

3:6c83c0caad21deef893bd2b64d8d5a5c5db79b134e9f6b82c0b36e0489ee08ed

4:755146b0f224288ff1f9517809ac46ba5db79b134e9f6b82c0b36e0489ee08ed

Selepas mengklik pada pautan, halaman akan menatal ke atas halaman # Titik utama lalai ialah #TOP (ujian sebenar mendapati bar skrol akan menatal ke atas sahaja). pautan mati. Semuanya mewakili pautan mati. Ia akan melompat dan tidak akan kembali ke atas.

Contoh-Mengapa location.href tidak melompat secara automatik?

<a href="javascript:void(0)" onclick="delete('123')">删除</a>
function delete(id){
 if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
  location.href="/delete.jsp&#63;id=" + id;
 }
}

Tidak kira bagaimana anda menyemak kod di atas, tiada masalah dan location.href="/delete.jsp?id=" id berfungsi dengan baik di tempat lain. Mengapa kod ini berfungsi?

Sebabnya ialah void(0) menukar kod kepada:

<a href="javascript:delete('123')">删除</a>function delete(id) {
 if(confirm("确实要删除[为什么location.href不自动跳转?]吗?")) {
  location.href="/delete.jsp&#63;id=" + id;
 }
}

Kami mendapati halaman itu melompat serta-merta dan data yang sepadan boleh dipadamkan seperti biasa.

Oleh kerana void ialah pengendali, ia akan mengira ungkapan, tetapi tidak akan mengembalikan nilai Sudah tentu, ia tidak akan mengubah sebarang kandungan halaman semasa dan ia tidak akan melompat seperti biasa.

Penerangan

Operator

kosong menilai ungkapan dan mengembalikan tidak ditentukan. Operator ini paling berguna apabila anda ingin menilai ungkapan tetapi tidak mahu hasilnya kelihatan kepada skrip yang lain.

Menggunakan javascript:void(0) secara langsung untuk pautan (href) boleh menyebabkan beberapa masalah dalam IE, seperti menyebabkan animasi gif berhenti dimainkan, dsb. Oleh itu, cara paling selamat ialah menggunakan "#". Untuk mengelakkan melompat ke bahagian atas halaman selepas mengklik pautan, acara onclick boleh mengembalikan palsu.

PS: Perbezaan antara href=# dan href=javascriptvoid(0)

#" mengandungi maklumat lokasi
Titik utama lalai ialah #atas, iaitu bahagian atas halaman web
Dan javascript:void(0) hanya mewakili pautan mati
Itulah sebabnya kadangkala halaman itu sangat panjang dan pautan penyemakan imbas jelas # tetapi ia melompat ke bahagian atas halaman
Dan javascript:void(0)
Ini tidak berlaku, jadi sebaiknya gunakan void(0)
apabila memanggil skrip. Atau e370bd609eb22892c7eca94d03d7e177

Beberapa cara untuk membuka pautan dalam tetingkap baharu

1.window.open('url')


2. Gunakan fungsi tersuai


<script>   
function openWin(tag,obj)   
{    
obj.target="_blank";    
obj.href = "Web/Substation/Substation.aspx&#63;stationno="+tag;    
obj.click();   
}   
</script> 
<a href="javascript:void(0)" onclick="openWin(3,this)">LINK_TEST</a> 
window.location.href="" 
------------------------------------------------ --- --------------------------------

Jika ia adalah #, ia akan melonjak ke atas Beberapa penyelesaian daripada kegemaran peribadi:

1:6b0da6d38e340e6a590cff29d8e276f55db79b134e9f6b82c0b36e0489ee08ed 2:0408054196e655f677973fb4d7c998655db79b134e9f6b82c0b36e0489ee08ed 3:6c83c0caad21deef893bd2b64d8d5a5c5db79b134e9f6b82c0b36e0489ee08ed 4:755146b0f224288ff1f9517809ac46ba5db79b134e9f6b82c0b36e0489ee08ed 5:84c8ecde5320398c03be1686cf845b0554bdf357c58b8a65c66d7c19c8e4d114 (Nampaknya ia tidak boleh dipaparkan dalam FF)



------------------------------------------------ --- --------------------------------

Kandungan di atas ialah apa yang editor memperkenalkan kepada anda maksud javascript:void(0) dan perbezaan antara href=# dan href=javascriptvoid(0).

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