454 Stimmen

Wie simuliert man einen Klick mit JavaScript?

Ich frage mich nur, wie ich JavaScript verwenden kann, um einen Klick auf ein Element zu simulieren.

Derzeit habe ich:

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);
  }
}

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

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

Aber es funktioniert nicht :(

Irgendwelche Ideen?

0voto

NVRM Punkte 8487

Dies ist nicht sehr gut dokumentiert, aber wir können sehr einfach alle Arten von Ereignissen auslösen.

In diesem Beispiel werden 50 Doppelklicks auf die Schaltfläche ausgelöst:

let theclick = new Event("dblclick")

for (let i = 0;i < 50;i++){
  action.dispatchEvent(theclick) 
}

<button id="action" ondblclick="out.innerHTML+='Wtf '">TEST</button>
<div id="out"></div>

Die Schnittstelle Event stellt ein Ereignis dar, das im DOM stattfindet.

Ein Ereignis kann durch eine Benutzeraktion ausgelöst werden, z. B. durch einen Mausklick Taste oder das Tippen auf die Tastatur ausgelöst oder von APIs erzeugt werden, um den Fortschritt einer asynchronen Aufgabe darzustellen. Es kann auch ausgelöst werden programmatisch ausgelöst werden, z. B. durch den Aufruf der Methode HTMLElement.click() eines eines Elements, oder durch Definition des Ereignisses und anschließendes Senden an eine bestimmte Ziel mit EventTarget.dispatchEvent().

https://developer.mozilla.org/en-US/docs/Web/API/Event

https://developer.mozilla.org/en-US/docs/Web/API/Event/Event

0voto

Zia Khan Punkte 133

Die Lösung, die bei mir funktioniert hat.... Das Klick-Ereignis kann beim Klicken auf die Schaltfläche aufgerufen werden oder aus der JavaScript-Datei heraus erfolgen. In diesem Code klicken Sie entweder auf die Schaltfläche, um eine Warnung anzuzeigen, oder rufen Sie es einfach unter einer Bedingung oder ohne Bedingung auf

    function ss(){
    alert('dddddddddddddddddddddddd');
    }
    var mybtn=document.getElementById('btn');
    mybtn.click();

    <!DOCTYPE html>
    <html>
    <head>
    <title>Page Title</title>
    </head>
    <body>

    <h1>This is a Heading</h1>
    <p>This is a paragraph.</p>
    <button id="btn" onclick="ss()">click to see </button>
    </body>
    </html>

-2voto

user15209137 Punkte 9
const Discord = require("discord.js");
const superagent = require("superagent");

module.exports = {
    name: "hug",
    category: "action",
    description: "hug a user!",
    usage: "hug <user>",
    run: async (client, message, args) => {
    let hugUser = message.mentions.users.first() 
    if(!hugUser) return message.channel.send("You forgot to mention somebody.");
    let hugEmbed2 = new Discord.MessageEmbed()
    .setColor("#36393F")
    .setDescription(`**${message.author.username}** hugged **himself**`)
    .setImage("https://i.kym-cdn.com/photos/images/original/000/859/605/3e7.gif")
     .setFooter(`© Yuki V5.3.1`, "https://cdn.discordapp.com/avatars/489219428358160385/19ad8d8c2fefd03fa0e1a2e49a2915c4.png")
  if (hugUser.id === message.author.id) return message.channel.send(hugEmbed2);
    const {body} = await superagent
    .get(`https://nekos.life/api/v2/img/hug`);

    let hugEmbed = new Discord.MessageEmbed()
    .setDescription(`**${message.author.username}** hugged **${message.mentions.users.first().username}**`)
    .setImage(body.url)
    .setColor("#36393F")
     .setFooter(`© Yuki V5.3.1`, "https://cdn.discordapp.com/avatars/489219428358160385/19ad8d8c2fefd03fa0e1a2e49a2915c4.png")
    message.channel.send(hugEmbed)
}
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X