繁体   English   中英

如何在<a>没有href</a>的<a>标签</a>上模拟鼠标点击<a>?</a>

[英]How to simulate a mouse click on an <a> tag that has no href?

我想使用用户脚本在加载页面时自动点击按钮。
目标页面的HTML(我无法控制)如下所示:

<a id="signInBtn" alog-alias="qb-signin-btn" class="signInBefore btn btn-24-white grid" data-disabled="false" hidefocus="hidefocus">
    <em><b>CheckIn</b></em>
</a>

这是一个没有href属性的奇怪链接。 我正在尝试使用此代码:

var btn = $("a#signInBtn");
btn.trigger("click");

但Chrome的控制台给了我这个:

(未知)事件处理程序出错:
错误:语法错误,无法识别的表达式:a [href ^ = / i?]

我的用户如何点击此按钮?

jQuery .trigger()主要只适用于jQuery设置的事件。 并且,在这种情况下,必须使用目标页面的jQuery实例调用它, 而不是用户脚本。 (另外,你的脚本如何使用jQuery?错误的方法可能会破坏页面,脚本或两者。)

可能还需要其他事件和/或AJAX来应对,我们无法从您的问题中得知。 请参阅在AJAX驱动的站点上选择并激活正确的控件

轮询节点和触发鼠标事件几乎适用于所有情况。 这是一个完整的用户脚本,可以帮助您入门:

// ==UserScript==
// @name     _Auto-click the sign-in link
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    GM_addStyle
// ==/UserScript==

var signInTimer = setInterval ( function() {
        var signInBtn = document.querySelector ("#signInBtn");
        if (signInBtn) {
            clearInterval (signInTimer);

            var clickEvent  = document.createEvent ('MouseEvents');
            clickEvent.initEvent ('click', true, true);
            signInBtn.dispatchEvent (clickEvent);
        }
    }
    , 200
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM