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

求助页面按钮无法点击

[复制链接]
  • TA的每日心情
    开心
    昨天 07:21
  • 签到天数: 495 天

    [LV.9]以坛为家II

    3

    主题

    43

    回帖

    231

    积分

    高级工程师

    积分
    231
    发表于 2024-2-4 21:21:21 | 显示全部楼层 | 阅读模式
    悬赏50油猫币已解决
    本人js零基础,依葫芦画瓢写签到脚本发现有个按钮无法点击(我禁用了编辑器代码,希望能显示出代码):

    <a class="but c-blue ml10 pw-1em radius initiate-checkin" href="javascript:;" form-action="user_checkin" ed-text="<i class="fa fa-calendar-check-o"></i>已签到"><i class="fa fa-calendar-check-o"></i>签到</a>

    后面相关的:

    <script>
            $(".initiate-checkin").click(function() {
                    $(".flip_checkin").click();
                    $(".flip_checkin").remove();
            })
    </script>
    <span data-class="modal-mini xy_flip_checkin" mobile-bottom="true" data-height="240"
    data-remote="https://zxcsol.com/wp-admin/admin-ajax.php?action=Nine_grid_modal"
    class="flip_checkin" href="javascript:;" data-toggle="RefreshModal">
    </span>

    尝试比如直接通过class过滤
    document.querySelector('a.initiate-checkin').click();

    尝试直接调用点击功能
    $(".flip_checkin").click();

    或者
    document.querySelector(".flip_checkin").click();


    再或者通过文字来过滤
    var buttons = document.querySelectorAll('a.initiate-checkin');
    for (var i = 0; i < buttons.length; i++) {
            if (buttons[i].textContent.trim() === '签到') {
                    console.log(buttons[i]);
                    buttons[i].click(); // 模拟点击该按钮
                    break; // 找到并点击按钮后跳出循环
            }
    }

    直接click不行,我还试了
    buttons[i].dispatchEvent(new MouseEvent('click'));

    通过console.log的输出,我确定是找到按钮了,为啥没有效果呢?

    最佳答案

    查看完整内容

    [md]```javascript // ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 2024-02-05 // @description try to take over the world! // @author You // @match https://zxcsol.com/user/ // @icon https://www.google.com/s2/favicons?sz=64&domain=zxcsol.com // @grant none // ==/UserScript== (function () { 'use strict'; ...
  • TA的每日心情
    开心
    2024-3-4 18:26
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    0

    主题

    3

    回帖

    14

    积分

    助理工程师

    积分
    14

    油中3周年挑战者 lv1油中2周年新人报道

    发表于 2024-2-4 21:21:22 | 显示全部楼层
    // ==UserScript==
    // @name         New Userscript
    // @namespace    http://tampermonkey.net/
    // @version      2024-02-05
    // @description  try to take over the world!
    // @author       You
    // @match        https://zxcsol.com/user/
    // @icon         https://www.google.com/s2/favicons?sz=64&domain=zxcsol.com
    // @grant        none
    // ==/UserScript==
    
    (function () {
        'use strict';
    
        // 如果像我这样直接写的话,console.log()会输出元素,但是不会触发 click 事件。
        // 我猜你应该也是这么写的。
        // console.log(document.querySelector('a.but.c-blue.ml10.pw-1em.radius.checkin-details-link'));
        // document.querySelector('a.but.c-blue.ml10.pw-1em.radius.checkin-details-link').click();
    
        // 尝试了两种解决方式,如果点击不到可以自己更改一下选择器哈,早上不小心直接点击签到了,不知道选择器正不正确了。
        // 或者更改一下脚本的匹配地址,希望能够帮到你。
    
        // 第一种
        window.onload = function () {
            console.log('当整个页面,包括样式、图片和其他资源被加载完成时,会触发 window 对象上的 load 事件。');
            document.querySelector('a.but.c-blue.ml10.pw-1em.radius.checkin-details-link').click();
        };
    
        // 第二种
        //     setTimeout(function () {
        //         console.log('延时2秒后执行。');
        //         document.querySelector('a.but.c-blue.ml10.pw-1em.radius.checkin-details-link').click();
        //     }, 2000);
    
    })();
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 18:26
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    0

    主题

    3

    回帖

    14

    积分

    助理工程师

    积分
    14

    油中3周年挑战者 lv1油中2周年新人报道

    发表于 2024-2-5 01:19:44 | 显示全部楼层
    请问有地址吗?调试一下才知道问题,光看我看不明白。才疏学浅
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 07:21
  • 签到天数: 495 天

    [LV.9]以坛为家II

    3

    主题

    43

    回帖

    231

    积分

    高级工程师

    积分
    231
    发表于 2024-2-5 09:38:59 | 显示全部楼层
    Str_i 发表于 2024-2-5 01:19
    请问有地址吗?调试一下才知道问题,光看我看不明白。才疏学浅

    https://zxcsol.com/user/balance

    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    回帖

    5

    积分

    助理工程师

    积分
    5
    发表于 2024-2-5 13:41:53 | 显示全部楼层
    本帖最后由 juhua1 于 2024-2-5 13:53 编辑

    你说的是个人页面的签到按钮吗,我试了可以直接click(),会不会是你脚本执行时间问题


    $(function(){
        var button = $("a.but.c-blue.ml10.pw-1em.radius.checkin-details-link")[0]
        console.log(button)
        button.click()
    })

    回复

    使用道具 举报

    发表回复

    本版积分规则

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