我只是想知道如何使用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);
  }
}
<a href="http://www.google.com" id="mytest1">test 1</a><br>

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

但它并没有起作用:(

什么好主意吗?


当前回答

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.
}

参考

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events https://codepen.io/felquis/pen/damDA

其他回答

document.getElementById('elementId').dispatchEvent(new MouseEvent("click",{bubbles: true, cancellable: true}));

按照这个链接了解鼠标事件使用Javascript和浏览器兼容性相同

https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent#Browser_compatibility

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)
}
}
document.getElementById("element").click()

只需从DOM中选择元素。该节点具有单击函数,您可以调用该函数。

Or

document.querySelector("#element").click()

对我有效的解决方案.... 点击事件可以在点击按钮或从JavaScript文件中调用。 在这段代码中,要么单击按钮显示警报,要么在某些条件下或无条件地调用它

函数ss () { alert (' dddddddddddddddddddddddd '); } var mybtn = . getelementbyid (btn); mybtn.click (); <!DOCTYPE html > < html > < >头 <标题>页面标题< /名称> < / >头 身体< > <h1>这是一个标题</h1> <p>这是一个段落 <button id="btn" onclick="ss()">点击查看</按钮> . < /身体> < / html >

在javascript中,通过它的id或类名抓取元素,然后应用.click()使点击发生 如:

document.getElementById("btnHandler").click();