ASP.NET dosyasının arkasındaki c # kodunda dinamik olarak bir köprü oluşturuyorum. İstemci tıklamasında bir JavaScript işlevi çağırmam gerekiyor. bunu nasıl başarırım?
ASP.NET dosyasının arkasındaki c # kodunda dinamik olarak bir köprü oluşturuyorum. İstemci tıklamasında bir JavaScript işlevi çağırmam gerekiyor. bunu nasıl başarırım?
Yanıtlar:
Yine de, typical href="#"
veya href="javascript:void"
veya yerine, bunun href="whatever"
çok daha mantıklı olduğunu düşünüyorum:
var el = document.getElementById('foo');
el.onclick = showFoo;
function showFoo() {
alert('I am foo!');
return false;
}
<a href="no-javascript.html" title="Get some foo!" id="foo">Show me some foo</a>
Javascript başarısız olursa, bazı geri bildirimler vardır. Ayrıca, düzensiz davranış (olması durumunda sayfa atlama, olması durumunda href="#"
aynı sayfayı ziyaret etme href=""
) ortadan kalkar.
Hepsinin en basit cevabı ...
<a href="javascript:alert('You clicked!')">My link</a>
Veya bir javascript işlevi çağırma sorusuna cevap vermek için:
<script type="text/javascript">
function myFunction(myMessage) {
alert(myMessage);
}
</script>
<a href="javascript:myFunction('You clicked!')">My link</a>
Onclick parametresi ile ...
<a href='http://www.google.com' onclick='myJavaScriptFunction();'>mylink</a>
JQuery yanıtı. JavaScript, JQuery'yi geliştirmek için icat edildiğinden, size JQuery'de bunu yapan bir örnek veriyorum:
<div class="menu">
<a href="http://example.org">Example</a>
<a href="http://foobar.com">Foobar.com</a>
</div>
<script>
jQuery( 'div.menu a' )
.click(function() {
do_the_click( this.href );
return false;
});
// play the funky music white boy
function do_the_click( url )
{
alert( url );
}
</script>
Javascript köprüleri için href yerine onclick yöntemini kullanmayı tercih ediyorum. Ve hangi değere sahip olduğunuzu belirlemek için daima uyarıları kullanın.
<a href='#' onclick='jsFunction();alert('it works!');'>Link</a>
Ayrıca giriş etiketlerinde de kullanılabilir, örn.
<input type='button' value='Submit' onclick='jsFunction();alert('it works!');'>
İdeal olarak, bu bağlantıların her birinin 'işaretlemesinde' bir değişiklik yapmak istediğinizde, kodunuzun yeniden derlenmesi gerekeceğinden, kodunuzda bağlantı oluşturmaktan tamamen kaçınırım. Bunu yapmak zorunda kalırsanız, javascript 'çağrılarınızı' HTML'nize yerleştirmem, tamamen kötü bir uygulamadır, işaretlemeniz belgenizi tanımlamalıdır, ne yaptığını değil, javascript'inizin işi budur.
Her öğe (veya ortak işlevi varsa sınıf) için belirli bir kimliğinizin olduğu bir yaklaşım kullanın ve ardından olay işleyicilerini eklemek için Aşamalı Geliştirme'yi kullanın, örneğin:
[c# example only probably not the way you're writing out your js]
Response.Write("<a href=\"/link/for/javascriptDisabled/Browsers.aspx\" id=\"uxAncMyLink\">My Link</a>");
[Javascript]
document.getElementById('uxAncMyLink').onclick = function(e){
// do some stuff here
return false;
}
Bu şekilde, kodunuz JS'nin devre dışı bırakıldığı kullanıcılar için kırılmaz ve açık bir endişeye yol açar.
Umarım işe yarar.
<a href="https://stackoverflow.com/link/for/javascriptDisabled/Browsers.aspx" id="uxAncMyLink">My Link</a>
?
Onclick olayını doğrudan ayarlamak yerine genellikle element.attachEvent (IE) veya element.addEventListener (diğer tarayıcılar) kullanılmasını öneririm, çünkü ikincisi o öğe için mevcut olay işleyicilerin yerini alacaktır.
attachEvent / addEventListening, birden çok olay işleyicisinin oluşturulmasına izin verir.
onclick
HTML özelliğini kullanın .
onclick
Olay işleyicisi hangi elemana kullanıcıların fare düğmesinden bir tıklama etkinliğini yakalayanonclick
özellik uygulanır. Bu eylem genellikle JavaScript işlevi [...] gibi bir komut dosyası yöntemine çağrı ile sonuçlanır.
Sayfanın yüklenmesini beklemiyorsanız, öğeyi kimliğine göre seçemezsiniz. Bu çözüm, çalıştırılacak kodu alma konusunda sorun yaşayan herkes için çalışmalıdır.
<script type="text/javascript">
window.onload = function() {
document.getElementById("delete").onclick = function() {myFunction()};
function myFunction() {
//your code goes here
alert('Alert message here');
}
};
</script>
<a href='#' id='delete'>Delete Document</a>