de-vraag
  • Întrebări
  • Tag-uri
  • Utilizatori
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
Belgin Fish
Belgin Fish
Question

Cum putem simula un clic cu JavaScript?

Mă întrebam cum pot folosi JavaScript pentru a simula un clic pe un element de pe pagină.

În prezent, am așa un cod:

<script type="text/javascript">
function simulateClick(control)
{
    if (document.all)
    {
        control.click();
    }
    else
    {
        var evObj = document.createEvent('MouseEvents');
        evObj.initMouseEvent('click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );
        control.dispatchEvent(evObj);
    }
}
</script>

<a href="http://www.google.com" id="mytest1">test 1</a><br>

<script type="text/javascript">
    simulateClick(document.getElementById('mytest1'));
</script>

Dar nu merge :(

Vre-o ideie?

261 2010-04-24T18:10:30+00:00 6
Andrey Chaschev
Andrey Chaschev
Întrebarea editată 1 februarie 2014 в 12:21
Programare
javascript
Popular videos
How to simulate a click with pure JavaScript?
How to simulate a click with pure JavaScript?
3 ani în urmă
JavaScript : How to simulate a click with JavaScript?
JavaScript : How to simulate a click with JavaScript?
4 luni în urmă
How to simulate / make a LONG PRESS / LONG TAP on a HTML page using JavaScript
How to simulate / make a LONG PRESS / LONG TAP on a HTML page using JavaScript
1 an în urmă
5.0a: Introduction to Physics Engines Part 1 - The Nature of Code
5.0a: Introduction to Physics Engines Part 1 - The Nature of Code
5 ani în urmă
Coding Challenge #56: Attraction and Repulsion Forces
Coding Challenge #56: Attraction and Repulsion Forces
5 ani în urmă
LIVE GIVEAWAY MYTHICAL PET SIMULATOR X, MABAR SANTUY WITH VIEWERS - ROBLOX #74
LIVE GIVEAWAY MYTHICAL PET SIMULATOR X, MABAR SANTUY WITH VIEWERS - ROBLOX #74
4 luni în urmă
EDITING ✅  ADMIN Panel app aia file new year 🎁বোনাস 🎁 Kodular Earning app aia with admin panel ✅
EDITING ✅ ADMIN Panel app aia file new year 🎁বোনাস 🎁 Kodular Earning app aia with admin panel ✅
4 luni în urmă
DevTools in 2016: Accelerate your workflow - Google I/O 2016
DevTools in 2016: Accelerate your workflow - Google I/O 2016
6 ani în urmă
REST API Tutorial (Node, Express &amp; Mongo) #6.5 - Postman
REST API Tutorial (Node, Express & Mongo) #6.5 - Postman
5 ani în urmă
A beginner&#39;s guide to quantum computing | Shohini Ghose
A beginner's guide to quantum computing | Shohini Ghose
3 ani în urmă
Google I/O 2016 - Day 3 Track 1
Google I/O 2016 - Day 3 Track 1
6 ani în urmă
Exponential Growth: How Folding Paper Can Get You to the Moon
Exponential Growth: How Folding Paper Can Get You to the Moon
10 ani în urmă
YouTube Shorts Fund
YouTube Shorts Fund
9 luni în urmă
Hardest Zombie Game Ever #2 w/Diction
Hardest Zombie Game Ever #2 w/Diction
4 luni în urmă
How does the stock market work? - Oliver Elfenbaum
How does the stock market work? - Oliver Elfenbaum
3 ani în urmă
.NET 5 REST API Tutorial - Build From Scratch With C#
.NET 5 REST API Tutorial - Build From Scratch With C#
11 luni în urmă
But how does bitcoin actually work?
But how does bitcoin actually work?
4 ani în urmă
Do we see reality as it is? | Donald Hoffman
Do we see reality as it is? | Donald Hoffman
6 ani în urmă
« Anterior
Următor »
Solution / Answer
 KooiInc
KooiInc
24 aprilie 2010 в 9:30
2010-04-24T21:30:10+00:00
Mai mult
Sursă
Editează
#10367172

Am pregătit așa o funcție, e destul de simplă, dar funcționează bine:

function eventFire(el, etype){
  if (el.fireEvent) {
    el.fireEvent('on' + etype);
  } else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false);
    el.dispatchEvent(evObj);
  }
}

O folosești așa:

eventFire(document.getElementById('mytest1'), 'click');
Or B
Or B
Răspuns editat 12 septembrie 2015 в 6:10
383
0
Darren Sweeney
Darren Sweeney
12 septembrie 2014 в 11:06
2014-09-12T11:06:33+00:00
Mai mult
Sursă
Editează
#10367174

Se poate și mai simplu:

document.getElementById('elementID').click();

Și merge chiar și pe Internet Explorer.

 mb21
mb21
Răspuns editat 20 octombrie 2016 в 11:53
326
0
 BradBrening
BradBrening
24 aprilie 2010 в 6:12
2010-04-24T18:12:47+00:00
Mai mult
Sursă
Editează
#10367171

Poți să folosești jQuery pentru a evita problemele de compatibilitate cu alte browsere:

$("#mytest1").click();
75
0
Adam Salma
Adam Salma
24 ianuarie 2016 в 5:12
2016-01-24T17:12:39+00:00
Mai mult
Sursă
Editează
#10367175

Poți să-ți salvezi o grămadă de timp dacă folosești jQuery:

$('#myElement').trigger("click")
15
0
 mnishiguchi
mnishiguchi
30 mai 2016 в 9:36
2016-05-30T21:36:55+00:00
Mai mult
Sursă
Editează
#10367176
var elem = document.getElementById('mytest1');

// Simulate clicking on the specified element.
triggerEvent( elem, 'click' );

/**
 * Trigger the specified event on the specified element.
 * @param  {Object} elem  the target element.
 * @param  {String} event the type of the event (e.g. 'click').
 */
function triggerEvent( elem, event ) {
  var clickEvent = new Event( event ); // Create the event.
  elem.dispatchEvent( clickEvent );    // Dispatch the event.
}

Cu referire la:

  • Documentația Mozilla despre crearea Triggerilor
  • CodePen
14
0
 brianlmerritt
brianlmerritt
28 august 2014 в 9:40
2014-08-28T09:40:23+00:00
Mai mult
Sursă
Editează
#10367173

Răspunsul de sus este super! Dar, la mine în Firefox nu a funcționat când etype = &#39;click&#39;.

Deci, am schimbat document.createEvent cu &#39;MouseEvents&#39; și problema s-a rezolvat.

function eventFire(el, etype){
  if (el.fireEvent) {
    el.fireEvent('on' + etype);
  } else {
    var evObj = document.createEvent('MouseEvents');
    evObj.initEvent(etype, true, false);
    var canceled = !el.dispatchEvent(evObj);
    if (canceled) {
      // A handler called preventDefault.
      console.log("automatic click canceled");
    } else {
      // None of the handlers called preventDefault.
    } 
  }
}
Nate Barbettini
Nate Barbettini
Răspuns editat 13 septembrie 2015 в 12:08
7
0
Comunități asemănătoare 1
JavaScript, România - Moldova
JavaScript, România - Moldova
236 utilizatori
Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @php_ro, @python_ro, @devops_ro, @seo_ro Offtop: @holywars_ro
Deschide telegram
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
Utilizatori
Toate
Nou
Populare
1
mohidil qodirova
Înregistrat 1 zi în urmă
2
Jasur Fozilov
Înregistrat 2 zile în urmă
3
Zuxriddin Muydinov
Înregistrat 2 zile în urmă
4
Денис Анненский
Înregistrat 5 zile în urmă
5
365
Înregistrat 1 săptămână în urmă
DE
ES
FR
ID
JA
KO
NL
PT
RO
RU
ZH
© de-vraag 2022
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire