上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

.click()触发div元素失效

[复制链接]
  • TA的每日心情
    开心
    前天 18:47
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    5

    积分

    助理工程师

    积分
    5
    发表于 3 天前 | 显示全部楼层 | 阅读模式
    悬赏10油猫币已解决
    本帖最后由 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
    // @description  try 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);
  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    724

    主题

    6181

    回帖

    6925

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6925

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 3 天前 | 显示全部楼层
    var event = new Event("mousedown");
    $0.dispatchEvent(event);
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 18:47
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    5

    积分

    助理工程师

    积分
    5
    发表于 3 天前 | 显示全部楼层
    本帖最后由 emotional12138 于 2025-1-2 14:54 编辑

    为什么发表帖子时候的使用markdown编辑器似乎就发不出内容
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-12-18 11:32
  • 签到天数: 194 天

    [LV.7]常住居民III

    724

    主题

    6181

    回帖

    6925

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6925

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 3 天前 | 显示全部楼层
    https://learn.scriptcat.org/%E6% ... %E8%A7%A6%E5%8F%91/

    没有做元素触发,可以根据框架进行处理或者diapatch触发
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 18:47
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    5

    积分

    助理工程师

    积分
    5
    发表于 前天 18:51 | 显示全部楼层
    李恒道 发表于 2025-1-2 21:21
    var event = new Event("mousedown");
    $0.dispatchEvent(event);

    有效!!感谢道哥!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-12-6 09:35
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    3

    主题

    18

    回帖

    23

    积分

    助理工程师

    积分
    23
    发表于 昨天 14:15 | 显示全部楼层
    不是click触发事件,是mousedown触发事件
    上传头像失败
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表