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

求助,window.addEventListener("load"内的click点击问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-9-3 01:32
  • 签到天数: 46 天

    [LV.5]常住居民I

    3

    主题

    6

    回帖

    32

    积分

    助理工程师

    积分
    32
    发表于 2024-5-26 13:06:19 | 显示全部楼层 | 阅读模式

    我现在想做一个自动登录的脚本,但是我遇到了一点问题。
    我在监听load的时候触发回调函数执行fillForms

    window.addEventListener("load", () => {
        const currentURL = window.location.href;
        if (currentURL.includes("https://xxx.com/login")) {
          fillForms(getRandomAccount());
        }
      });

    这是fillForms函数的逻辑

    function fillForms(account) {
        document.querySelector('input[name="username"]').value = account.username;
        document.querySelector('input[name="password"]').value = account.password;
        let submitbutton = document.querySelector('button[type="submit"]');
        console.log(submitbutton);
        console.log(submitbutton.click);
        if (submitbutton) {
          console.log(submitbutton);
          submitbutton.click();
        }
    
        // setTimeout(() => submitbutton.click(), 1000);
    
        localStorage.setItem("account", account);
      }

    其中页面执行脚本后,submitbutton的节点可以正常输出,但是我的登录页面并不会跳转,我怀疑它没有执行click函数,所以我在注释里面使用延时函数去触发click事件,结果延时触发页面发生了成功跳转登录成功了,为什么呢?我的代码该做怎么样的改进才能直接去触发click事件,而不需要使用延时函数

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5992

    回帖

    6780

    积分

    管理员

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

    积分
    6780

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

    发表于 2024-5-26 20:51:28 | 显示全部楼层
    感觉跟https://bbs.tampermonkey.net.cn/thread-7115-1-1.html
    是一个提问
    有区别吗,没区别的话这个问题也算结束了
    有区别可以直接回复我,我们一起继续讨论
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

    发表回复

    本版积分规则

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