Estoy creando dinámicamente un hipervínculo en el código C# detrás del archivo de ASP.NET. Necesito llamar a una función de JavaScript en el clic del cliente. ¿Cómo logro esto?llame la función javascript en el hipervínculo haga clic en
Respuesta
más limpio todavía, en lugar de la typical href="#"
o href="javascript:void"
o href="whatever"
, creo que esto tiene mucho más sentido:
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 falla, hay algunos comentarios. Además, se elimina el comportamiento errático (salto de página en el caso de href="#"
, visitando la misma página en el caso de href=""
).
+1 Esta es actualmente la única respuesta discreta. +100 si pudiera. – James
@Lewis, sí, idealmente las etiquetas no se usarían para llamadas js puras, pero desafortunadamente los navegadores más antiguos no admitían: desplace el mouse para elementos que no son de enlace. Por lo tanto, los enlaces solían usarse para desencadenar eventos js. –
@Chris - No estoy seguro de entender mi punto Chris. Sugiero que no use Do nothing y en su lugar use Do something y luego use la mejora progresiva para anular el href. Esta es la solución más limpia. Los anclajes están bien, pero deberían hacer ALGO si javascript está desactivado, o por alguna razón (según IE6) algunos javascript se rompieron antes de que el controlador se haya creado y asignado. De esta forma, todos tus usuarios están contentos. – Lewis
Con el parámetro onclick ...
<a href='http://www.google.com' onclick='myJavaScriptFunction();'>mylink</a>
Utilice la onclick
HTML attribute.
El controlador de eventos
onclick
captura un evento clic desde el botón del ratón de los usuarios en el elemento al que se aplica el atributoonclick
. Esta acción lo general resulta en una llamada a un método la escritura como una función de JavaScript [...]
Lo ideal sería evitar la generación de enlaces en su código por completo, ya que su código necesitará recompilar cada vez que quiera hacer un cambio en el 'marcado' de cada uno de esos enlaces. Si tiene que hacerlo, no insertaría sus 'llamadas' de javascript dentro de su HTML, es una mala práctica, su marcado debe describir su documento, no lo que hace, ese es el trabajo de su javascript.
utilizar un enfoque donde se tiene una identificación específica para cada elemento (o clase si su funcionalidad común) y luego usar la consolidación progresiva para agregar el controlador de eventos (s), algo así como:
[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 esa manera su código no se romperá para los usuarios con JS desactivado y tendrá una clara separación de preocupaciones.
Espero que sea de uso.
¿Por qué C#? ¿Por qué no solo 'My Link'? – Mahmoodvcs
En general, recomendaría usar element.attachEvent (IE) o element.addEventListener (otros navegadores) sobre la configuración del evento onclick directamente ya que este último reemplazará cualquier controlador de eventos existente para ese elemento.
attachEvent/addEventListening permiten crear múltiples controladores de eventos.
La respuesta de JQuery. Desde JavaScript se inventó con el fin de desarrollar jQuery, te estoy dando un ejemplo en jQuery hacer esto:
<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>
Yo prefiero usar el método onclick en lugar de la href para hipervínculos de JavaScript. Y siempre use alertas para determinar qué valor tiene.
<a href='#' onclick='jsFunction();alert('it works!');'>Link</a>
Podría ser también utilizado en las etiquetas de entrada por ejemplo.
<input type='button' value='Submit' onclick='jsFunction();alert('it works!');'>
La respuesta más sencilla de todas es ...
<a href="javascript:alert('You clicked!')">My link</a>
o para responder a la cuestión de llamar a una función javascript:
<script type="text/javascript">
function myFunction(myMessage) {
alert(myMessage);
}
</script>
<a href="javascript:myFunction('You clicked!')">My link</a>
Si no espera a que se cargue la página, no podrá seleccionar el elemento mediante el id. Esta solución debería funcionar para cualquier persona que tenga problemas para conseguir el código para ejecutar
<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>
- 1. Haga clic en hipervínculo en jtable?
- 2. Haga clic en Evento de hipervínculo
- 3. Javascript haga clic en el elemento
- 4. conseguir texto del hipervínculo en Chrome, haga clic derecho
- 5. Cómo puedo activar un evento de JavaScript, haga clic en
- 6. Jquery o javascript auto haga clic en
- 7. el clic de jquery no funciona en el hipervínculo
- 8. Haga clic en NSTextField Etiqueta para emular el hipervínculo en una carpeta
- 9. cómo llamar a la función javascript en fila de la tabla, haga clic
- 10. jQuery: Haga clic en * * Sólo este elemento
- 11. Manejar hipervínculo Haga clic en Evento en Outlook Mail en C#
- 12. javascript jquery botón de radio haga clic en
- 13. jQuery haga clic en función vs en línea onclick
- 14. Selenio haga clic en el enlace
- 15. jQuery if url hash, haga clic en evento/activar javascript
- 16. TabPage Haga clic en Eventos
- 17. Llamar a un servlet al hacer clic en el hipervínculo
- 18. archivo de entrada Haga clic en Chrome
- 19. Haga clic en el formulario transparente
- 20. Cómo deshabilitar el botón, haga clic en?
- 21. ASP.Net haga doble clic en el problema
- 22. PyQt, haga clic en la acción Qwidget
- 23. Haga doble clic en la fila DataGridView?
- 24. Haga clic en un enlace javascript dentro de python?
- 25. Haga clic en el evento de opción
- 26. Cómo deshabilitar el clic derecho en un hipervínculo en html
- 27. Haga clic derecho en JButton
- 28. no selectora, en(), haga clic en evento
- 29. MVC3 Razor: llame a la función javascript desde view
- 30. Enlace UIWebView Haga clic en
posible duplicado de [Cómo utilizar un Enlace Para Llamar JavaScript?] (Http://stackoverflow.com/questions/688196/how-to- use-a-link-to-call-javascript) – Trilarion