Yanıtlar:
<a onclick="jsfunction()" href="#">
veya
<a onclick="jsfunction()" href="javascript:void(0);">
Düzenle:
Yukarıdaki yanıt gerçekten iyi bir çözüm değil, başlangıçta yayınladığımdan beri JS hakkında çok şey öğrendim. Bkz EndangeredMassa cevabını bu sorunu çözmek için daha iyi bir yaklaşım için aşağıda.
Göze batmayan JavaScript, kitaplık bağımlılığı yok:
<html>
<head>
<script type="text/javascript">
// Wait for the page to load first
window.onload = function() {
//Get a reference to the link on the page
// with an id of "mylink"
var a = document.getElementById("mylink");
//Set code to run when the link is clicked
// by assigning a function to "onclick"
a.onclick = function() {
// Your code here...
//If you don't want the link to actually
// redirect the browser to another page,
// "google.com" in our example here, then
// return false at the end of this block.
// Note that this also prevents event bubbling,
// which is probably what we want here, but won't
// always be the case.
return false;
}
}
</script>
</head>
<body>
<a id="mylink" href="http://www.google.com">linky</a>
</body>
</html>
hrefKullanıcıyı yönlendirmek istemiyor ve sadece bazı kodları çalıştırmak istiyorsam ne yapmalıyım ? Düzenleme: Ben sol boş olabilir görüyoruz: href="".
onclickEtkinliği doğrudan etikete window.onloadkoymak yerine neden üzerinden eklemek daha iyidir ? onclick<a>
<a href="javascript:alert('Hello!');">Clicky</a>
EDIT, yıllar sonra: HAYIR! Bunu asla yapma! Gençtim ve aptaldım!
Tekrar düzenleyin: Birkaç kişi bunu neden yapmamanız gerektiğini sordu . Bunun birkaç nedeni var:
Sunum: HTML, sunuma odaklanmalıdır. JS'yi bir HREF'e koymak, HTML'nizin şu anda iş mantığıyla uğraştığı anlamına gelir.
Güvenlik: HTML'nizdeki Javascript, İçerik Güvenliği Politikası'nı (CSP) ihlal eder . İçerik Güvenliği Politikası (CSP), Siteler Arası Komut Dosyası (XSS) ve veri enjeksiyon saldırıları gibi belirli saldırı türlerini algılamaya ve azaltmaya yardımcı olan ek bir güvenlik katmanıdır. Bu saldırılar veri hırsızlığından site tahrifatına veya kötü amaçlı yazılım dağıtımına kadar her şey için kullanılır. Daha fazlasını buradan okuyun .
Erişilebilirlik: Bağlantı etiketleri diğer dokümanlara / sayfalara / kaynaklara bağlantı içindir. Bağlantınız hiçbir yere gitmezse, bir düğme olmalıdır . Bu, ekran okuyucularının, braille terminallerinin vb. Neler olup bittiğini belirlemesini ve görme engelli kullanıcılara faydalı bilgiler vermesini çok daha kolay hale getirir.
href='#'ve alert()de onclick?
Ve neden jQuery ile mütevazi değil:
$(function() {
$("#unobtrusive").click(function(e) {
e.preventDefault(); // if desired...
// other methods to call...
});
});
HTML
<a id="unobtrusive" href="http://jquery.com">jquery</a>
Göze batmayan Javascript'in birçok avantajı var, burada atılan adımlar ve neden kullanmanın iyi olduğu.
bağlantı normal şekilde yüklenir:
<a id="DaLink" href="http://host/toAnewPage.html"> burayı tıklayın </a>
javascript etkin olmayan tarayıcılarda çalışacağı için veya javascript kodunda çalışmayan bir hata varsa bu önemlidir.
javascript sayfa yüklemesinde çalışır:
window.onload = function(){
document.getElementById("DaLink").onclick = function(){
if(funcitonToCall()){
// most important step in this whole process
return false;
}
}
}javascript başarılı bir şekilde çalışırsa, geçerli sayfadaki içeriği javascript ile yükleyebilirse, return false, bağlantı tetiklemeyi iptal eder. başka bir deyişle, return false koyarak, javascript başarıyla çalıştırılırsa bağlantıyı devre dışı bırakma etkisi vardır. Javascript çalışmazsa çalışmasına izin verirken, içeriğinizin her iki şekilde görüntülenmesi için güzel bir yedekleme yapmak, arama motorları ve kodunuz kırılırsa veya javascript olmayan bir sistemde görüntülenir.
konuyla ilgili en iyi kitap Jeremy Keith tarafından "Dom Scription"
Veya, PrototyJS kullanıyorsanız
<script type="text/javascript>
Event.observe( $('thelink'), 'click', function(event) {
//do stuff
Event.stop(event);
}
</script>
<a href="#" id="thelink">This is the link</a>
jister ile mister_lucky cevap kullanımına dayalı:
$('#unobtrusive').on('click',function (e) {
e.preventDefault(); //optional
//some code
});
HTML Kodu:
<a id="unobtrusive" href="http://jquery.com">jquery</a>
sadece javascript kullanın: ---- örnek
javascript:var JFL_81371678974472 = new JotformFeedback({ formId: '81371678974472', base: 'https://form.jotform.me/', windowTitle: 'Photobook Series', background: '#e44c2a', fontColor: '#FFFFFF', type: 'false', height: 700, width: 500, openOnLoad: true })