我想使用用户脚本在页面加载时自动点击按钮 目标页面的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?]
我的用户如何点击此按钮?
答案 0 :(得分:1)
jQuery .trigger()
主要仅适用于jQuery设置的事件。并且,在这种情况下,必须使用目标页面的jQuery实例调用它,不是用户脚本。 (另外,你的脚本如何使用jQuery?错误的方法可以破坏页面,脚本或两者。)
可能还需要其他事件和/或AJAX来应对,我们无法从您的问题中得知。请参阅Choosing and activating the right controls on an AJAX-driven site。
轮询节点和触发鼠标事件几乎适用于所有情况。这是一个完整的用户脚本,可以帮助您入门:
// ==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
);