Bir bağlantının kullanılabilir bir görüntüleme nesnesi olabilmesi için bir HREF hedefi belirtilmesi gerekir.
Çoğu tarayıcı, gelişmiş JavaScript'i bir
<A HREF=""
gibi etiket:
<A href="JavaScript:var elem = document.getElementById('foo');"
çünkü çoğu tarayıcıdaki HREF etiketi boşluklara izin vermez veya boşlukları% 20'ye dönüştürür, çünkü bir SPACE'in HEX eşdeğeri, JavaScript'inizi yorumlayıcı için kesinlikle işe yaramaz hale getirir.
Bu nedenle, satır içi JavaScript'i yürütmek için bir HREF etiketi kullanmak istiyorsanız, HREF FIRST için çok karmaşık olmayan (boşluk içermeyen) geçerli bir değer belirtmeniz ve ardından JavaScript'i OnClick gibi bir etkinlik özelliği etiketinde belirtmeniz gerekir. , OnMouseOver, OnMouseOut, vb.
Tipik cevap böyle bir şey yapmaktır:
<A HREF="#" onclick="var elem = document.getElementById('foo');">Get the object</a>
Bu iyi çalışır, ancak pound işareti / karma etiketi bunu yapmasını söylemesi nedeniyle sayfanın üste atlamasını sağlar.
Sadece bir HREF etiketinde bir pound işareti / karma etiketi sağlamak aslında kök bağlantı noktasını belirtir, bu da her zaman varsayılan olarak sayfanın üstünde bir A HREF etiketi içinde NAME niteliğini belirterek farklı bir konum belirtebilirsiniz.
<A NAME='middleofpage'></A>
Daha sonra A HREF etiketinizi 'middleofpage'e atlayacak ve OnClick etkinliğinde JavaScript'i çalıştıracak şekilde değiştirebilirsiniz;
<A HREF="#middleofpage" onclick="var elem = document.getElementById('foo');">Get the object</a>
Bu bağlantının atlamasını istemediğiniz BİRÇOK kez olacak, böylece iki şey yapabilirsiniz:
<A HREF="#thislinkname" name='thislinkname' onclick="var elem = document.getElementById('foo');">Get the object</a>
Artık tıklandığında hiçbir yere gitmeyecek, ancak sayfanın kendisini mevcut görünüm noktasından yeniden merkezlemesine neden olabilir. Bu hoş değil. A HREF kullanarak, yukarıdakilerden herhangi birini yapmak zorunda kalmadan satır içi javascript sağlamanın en iyi yolu nedir? JavaScript: void (0);
<A HREF="JavaScript:void(0);" onclick="var elem = document.getElementById('foo');">Get the object</a>
Bu, tarayıcıya ŞİMDİ gitmesini söyler, bunun yerine geçerli JavaScript'i çalıştırır: void (0); boşluk içermediğinden ve URL olarak ayrıştırılmayacağından önce HREF etiketinde işlev görür. Bunun yerine derleyici tarafından çalıştırılacaktır. VOID, 0 değerinde bir perametre ile sağlandığında UNDEFINED değerini döndürdüğünde, 0 belirtmeden gerçekleşecek bir dönüş değerini işlemek için daha fazla kaynak kullanmayan (daha fazla bellek yönetimi / performans dostu) bir anahtar kelimedir.
Bir sonraki şey OnClick yürütülür. Sayfa hareket etmiyor, görüntü açısından hiçbir şey olmuyor.
javascript:
birçok URI şemasından biridir: en.wikipedia.org/wiki/URI_scheme , likedata:
.