<a href="javascript:void(0)" id="loginlink">login</a>
Bu tür href
leri birçok kez gördüm, ancak bunun tam olarak ne anlama geldiğini bilmiyorum.
void
operatörü verilen değeri değerlendirir ifadesini kullanır ve ardındanundefined
değerini döndürür.
void
operatörü genellikle yalnızcaundefined
ilkelini elde etmek için değeri, genellikle "void(0)
" kullanılarak (ki "void 0
" ile eşdeğerdir). Bunların içinde durumlarında, global değişkenundefined
yerine kullanılabilir (şu özelliklere sahip olduğu varsayılarak varsayılan olmayan bir yere atanmamış değer).
Burada bir açıklama yer almaktadır: void
operatörü.
Bunu bir bağlantının href
i ile yapmak istemenizin nedeni, normalde bir javascript:
URL'sinin tarayıcıyı bu JavaScript'in değerlendirilmesinin sonucunun düz metin sürümüne yönlendirecek olmasıdır. Ancak sonuç undefined
ise, tarayıcı aynı sayfada kalır. void(0)sadece
undefined` olarak değerlendirilen kısa ve basit bir koddur.
Yani hiçbir şey yapmayacak. Bu, bağlantının hiçbir yere 'gitmemesini' sağlamaya yönelik bir girişimdir. Ama bu doğru yol değil.
Aslında onclick
olayında return false
yapmalısınız, bunun gibi:
<a href="#" onclick="return false;">hello</a>
Genellikle bağlantı 'JavaScript-y' gibi bir şey yapıyorsa kullanılır. Bir AJAX formu göndermek ya da bir resmi değiştirmek gibi. Bu durumda, çağrılan fonksiyonun false
döndürmesini sağlarsınız.
Bununla birlikte, web sitenizi tamamen harika hale getirmek için, genellikle web sitenize göz atan kişi JavaScript'i çalıştırmamayı seçerse aynı işlemi yapan bir bağlantı eklersiniz.
<a href="backup_page_displaying_image.aspx"
onclick="return coolImageDisplayFunction();">hello</a>
a** etiketlerinizde her zaman bir href olmalıdır. Tanımsız' döndüren bir JavaScript işlevini çağırmak yeterli olacaktır. Aynı şekilde '#''e bağlantı vermek de.
Internet Explorer 6'da href içermeyen bağlantı etiketlerine a:hover
stili uygulanmaz.
Evet, bu korkunç ve insanlığa karşı işlenmiş küçük bir suç, ancak yine de genel olarak Internet Explorer 6 da öyle.
Umarım bu yardımcı olur.
Internet Explorer 6 aslında insanlığa karşı işlenmiş büyük bir suçtur.