2012-06-04 11 views
7

"javascript :;"

kod aşağıda ne anlama ve işe yarar Güncelleme HTML bağlantı etiketi içinde href özniteliği için? Çalışmak için JavaScript gerekiyor mu?

<a href="javascript:;">Do Somthing</a> 

Güncelleme

Bu hiçbir şey yapmaz ve bağlantı yapma, hayır-op ile bir yere gitmek için a etiketinin varsayılan davranışını değiştirmek anlamına gelir ?:

<a href="">Do Somthing</a> 
+1

AFA IK "Hiçbir şey yapmamanız" anlamına gelir – Alex

+1

Neden sadece denemiyorsunuz? –

cevap

13

olur belirtmediniz burada <a> tag.But kullanılarak çağrılır sonra bazı işlev belirtecekseniz bir href özelliğinin başlamasından olarak bir bağlantı javascript motoru olarak javascript olarak yorumlanacak dizenin geri kalanını kullanmasını söyler. Bu durumda, bu, bir katı noktalı virgülle boş bir javascript çizgisi olduğundan etkin yorumlamada bir sözdizimi hatasına neden olur. Şunun gibi: linklere JavaScript eski sözdizimi ve mümkün olduğunca kaçınılmalıdır gerektiği gibi

; 

Çoğu tarayıcı, ancak, bir hata atmaz. Bunu hiçbir şey yapmayan bir bağlantı olarak güvenle kullanabilirsiniz, ancak bunu tavsiye etmem. Eğer bir bağlantı hiçbir şey yapmak istiyorsanız

, bunun yerine bu kullanabilirsiniz:

<a href="#">Link</a> 
<a href="javascript:void(0);">Link</a> 
<a href="javascript:return false;">Link</a> 

tarayıcı bağlantı göreli olarak yorumlar yapacak boş href dize kullanma. Bir protokol veya üst düzey bir etki alanı veya IP adresi gibi bir tanımlayıcı ile başlamayan URL'ler göreli bağlantılar olarak değerlendirilir. Örneğin, "google.com" alanındaki "index.htm" bağlantısı, "google.com/index.htm" bağlantısını yaratacaktır. Aynı şekilde, "" href dizgisi "google.com/" bağlantısını yaratacak ve böylece boş href dizeleri tarayıcının yeni bir sayfaya gitmesine neden olacaktır.

Normalde, bir href özniteliği belirtmezseniz, bir imleci imleci göstermeyecek veya öğeyi bir bağlantı gibi biçimlendirmeyeceksiniz, bu yüzden onu bir "bağlantı" öğesi olarak kullanabilirsiniz. URL'de karakter.Böyle "http://google.com/#an_anchor" buna benzer bir çapa götürecek şekilde: <a id="an_anchor">This is an anchor</a>

böyle, biçimlendirilmiş olması için zorlamaya CSS kullanabilirsiniz Ancak:

CSS:

a { 
    color: #00c; 
    text-decoration: underline; 
    cursor: pointer; 
} 

HTML:

<a>This is a link.</a> 

Örnek: http://jsfiddle.net/J3RfH/

+0

Bu üç çapa, sayfanın sayfanın üst kısmına sıçramasına neden olur mu? – Pingpong

+0

'javascript:'/';' kesinlikle bir sözdizimi hatası değildir. –

0

altına eşit mi esasen oynanamaz.

5

Bu bir opak değildir.

diğer yaygın yolu href="#" ama bu sayfanın üst atlama ve adres çubuğunda bir # almamak için onclick olayı return false gerektirir.

Genellikle JavaScript ile ve JavaScript olmadan bir bağlantı kurmak için iyi bir fikir olduğunu unutmayın, yani <a href="/whatever" onclick="dowhatever(); return false;"> gibi bir şey yapın, böylece JavaScript'i olmayan kullanıcılar klasik olarak sayfayı basit bir şekilde açarken, JavaScript’li kullanıcılar sizin için her türlü güzel şeyi alırlar. JS ile yaptı.

şey yani hiçbir yararlı href değer ama uygun bir tarzda (cursor:pointer ve muhtemelen altı çizili) ile span kullanmak hiç a etiketini kullanarak değil düşünün, orada, hiç JavaScript olmadan çalışmak gerekiyordu değilse.

0

: o zaman herhangi bir işlev böylece hiçbir şey "javascript:" Kullanılması