Je crée dynamiquement un lien hypertexte dans le code c # derrière le fichier d'ASP.NET. J'ai besoin d'appeler une fonction JavaScript lors du clic client. comment puis-je y parvenir?
javascript
hyperlink
ErnieStings
la source
la source
Réponses:
Plus soigné encore, au lieu du
typical href="#"
ouhref="javascript:void"
ouhref="whatever"
, je pense que cela a beaucoup plus de sens: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>
Si Javascript échoue, il y a des commentaires. De plus, le comportement erratique (saut de page dans le cas de
href="#"
, visite de la même page dans le cas dehref=""
) est éliminé.la source
La réponse la plus simple de toutes est ...
<a href="javascript:alert('You clicked!')">My link</a>
Ou pour répondre à la question de l'appel d'une fonction javascript:
<script type="text/javascript"> function myFunction(myMessage) { alert(myMessage); } </script> <a href="javascript:myFunction('You clicked!')">My link</a>
la source
Avec le paramètre onclick ...
<a href='http://www.google.com' onclick='myJavaScriptFunction();'>mylink</a>
la source
La réponse JQuery. Depuis que JavaScript a été inventé pour développer JQuery, je vous donne un exemple dans JQuery faisant ceci:
<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>
la source
Je préfère utiliser la méthode onclick plutôt que le href pour les hyperliens javascript. Et utilisez toujours des alertes pour déterminer la valeur que vous avez.
<a href='#' onclick='jsFunction();alert('it works!');'>Link</a>
Il pourrait également être utilisé sur les balises d'entrée, par exemple.
<input type='button' value='Submit' onclick='jsFunction();alert('it works!');'>
la source
Idéalement, j'éviterais complètement de générer des liens dans votre code, car votre code devra être recompilé à chaque fois que vous souhaitez modifier le «balisage» de chacun de ces liens. Si vous devez le faire, je n'intègre pas vos «appels» javascript dans votre HTML, c'est une mauvaise pratique, votre balisage doit décrire votre document et non ce qu'il fait, c'est le travail de votre javascript.
Utilisez une approche où vous avez un identifiant spécifique pour chaque élément (ou classe si sa fonctionnalité commune), puis utilisez Progressive Enhancement pour ajouter le ou les gestionnaires d'événements, quelque chose comme:
[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; }
De cette façon, votre code ne cassera pas pour les utilisateurs avec JS désactivé et il aura une séparation claire des préoccupations.
J'espère que c'est utile.
la source
<a href="https://stackoverflow.com/link/for/javascriptDisabled/Browsers.aspx" id="uxAncMyLink">My Link</a>
?Je recommanderais généralement d'utiliser element.attachEvent (IE) ou element.addEventListener (autres navigateurs) plutôt que de définir l'événement onclick directement car ce dernier remplacera tous les gestionnaires d'événements existants pour cet élément.
attachEvent / addEventListening permettent de créer plusieurs gestionnaires d'événements.
la source
Utilisez l'
onclick
attribut HTML .la source
Si vous n'attendez pas que la page soit chargée, vous ne pourrez pas sélectionner l'élément par identifiant. Cette solution devrait fonctionner pour toute personne ayant des difficultés à exécuter le code
<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>
la source