.click()触发div元素失效
本帖最后由 emotional12138 于 2025-1-2 14:56 编辑网址:https://sudoku.com/zh
需求描述:我希望实现一个快捷键功能,点击空格键后切换数独的输入模式和备注模式,具体而言就是点击空格键后触发一个div元素的.click()。
问题描述:我写的油猴脚本可以正确通过document.querySelector()找到我希望点击的div元素,但是在触发.click()时没有效果。
油猴代码:
```javascript
// ==UserScript==
// @name 数独快捷键
// @namespace http://tampermonkey.net/
// @version 2024-12-17
// @descriptiontry to take over the world!
// @match *://sudoku.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=sudoku.com
// @grant none
// ==/UserScript==
(function() {
'use strict';
// 监听按键事件
document.addEventListener('keydown', function(event) {
// 检查是否按下了空格键
if (event.code === 'Space') {
event.preventDefault(); // 阻止默认空格滚动行为
// 找到目标元素
const targetElement = document.querySelector("#game-controls > div:nth-child(3) > div.game-controls-item.game-controls-pencil")
// 如果元素存在,触发点击
if (targetElement) {
targetElement.click();
console.log('Element clicked!'); //控制台可以正确输出该行,但是上行的.click()无法正确触发
} else {
console.log('Target element not found.');
}
}
});
})();
``` var event = new Event("mousedown");
$0.dispatchEvent(event); 本帖最后由 emotional12138 于 2025-1-2 14:54 编辑
为什么发表帖子时候的使用markdown编辑器似乎就发不出内容 https://learn.scriptcat.org/%E6%B2%B9%E7%8C%B4%E6%95%99%E7%A8%8B/%E4%B8%AD%E7%BA%A7%E7%AF%87/%E5%85%83%E7%B4%A0%E8%A7%84%E5%88%99%E6%A0%A1%E9%AA%8C%E5%92%8C%E6%A3%80%E6%B5%8B%E7%9A%84%E8%A7%A6%E5%8F%91/
没有做元素触发,可以根据框架进行处理或者diapatch触发 李恒道 发表于 2025-1-2 21:21
var event = new Event("mousedown");
$0.dispatchEvent(event);
有效!!感谢道哥! 不是click触发事件,是mousedown触发事件
页:
[1]