Javascript haga clic en la función

Tengo un código que funciona bien en IE pero desafortunadamente no en Google Chrome / Firefox.

Se basa en llamar a un evento click () en un botón desde javascript. Leer alrededor parece que esta es una extensión específica de IE (doh). ¿Hay alguna manera de que pueda hacer algo similar en chrome + firefox? Para aclarar, está ejecutando el evento de clic en un botón específico, sin manejar lo que sucede cuando el usuario hace clic en un botón.

Gracias

El código para quienes lo solicitaron:

function getLinkButton(actionsDiv) { var hrefs = actionsDiv.getElementsByTagName("a"); for (var i=0; i<hrefs.length; i++) { var id = hrefs[i].id; if (id !=null && id.endsWith("ShowSimilarLinkButton")) { return hrefs[i]; } } return null; } function doStuff() { //find the specific actions div... not important code... var actionsDiv = getActionsDiv(); var linkButton = getLinkButton(actionsDiv); if (linkButton != null) { if (linkButton.click) { linkButton.click(); } else { alert("Cannot click"); } } } 

Realmente no quiero usar jQuery a menos que sea absolutamente necesario

4 Solutions collect form web for “Javascript haga clic en la función”

Creo que estás buscando element.dispatchEvent :

 function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } } 

Leí su pregunta como “Estoy intentando activar el evento onclick para mi botón”, mientras que todos los demás parecen haberlo leído como “Estoy tratando de manejar un evento onclick para mi botón”. Por favor, hágamelo saber si tengo esto mal.

Modificando su código, una implementación adecuada de x-browser podría ser:

 if (linkButton != null) { if (linkButton.fireEvent) linkButton.fireEvent("onclick"); else { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); linkButton.dispatchEvent(evt); } } 

El atributo onclick debe ser crossbrowser:

  

EDITAR

Y hubo una pregunta que parece ser sobre el mismo problema: setAttribute, onClick y compatibilidad entre navegadores.

onclick = “methodcall ();” funciona para mi bien …

puede usar el atributo onClick o si necesita más funcionalidad, consulte jQuery y los eventos que ofrece: http://api.jquery.com/category/events/

  • "Onchange" evento retrasado en IE? (ok con Firefox)
  • ¿Por qué `mystring ` no devuelve nada en IE?
  • ¿Por qué recibo este error en IE: "El área de datos transferida a una llamada del sistema es demasiado pequeña"?
  • tinymce.selection.setContent inserta el text al comienzo del área de text en IE
  • Herramientas de debugging AngularJS para IE como Batarang
  • Ignorar el caching en IE cuando se ejecuta a través de Visual Studio
  • onClick no se activa con solo una input al presionar enter
  • Imprima el file PDF en IFrame usando javascript obteniendo solo una página
  • checkbox function onclick no llamada en IE
  • Identificador esperado, cadena o número
  • Permiso IE denegado
  • No se puede establecer el estilo de marginTop con script utilizando IE8, pero funciona en browseres de personas mayores
  • Extraño error de IE: entre la variable global de JavaScript y el elemento con el atributo de nombre
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.