无法以编程方式单击 Greasemonkey 脚本中的 <a> 标记
Cannot programmatically click <a> tag in Greasemonkey script
我正在尝试让 Firefox 中的 Greasemonkey 单击这个没有 href
属性的锚点:
<a class="btn btn-primary pull-right"
ng-class="{'disabled': programsTabSubmitInProgress}"
ng-click="handleAddProgramClick()">
<i class="fa fa-plus"></i>
<span>Add Program</span>
</a>
我已经尝试过这行代码,但是行不通:
// ==UserScript==
// @name Final Test
// @description Final test results
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// @include https://qs-hub.qs.com/#/profiles/topuniversities/programs*
// ==/UserScript==
setTimeout(function () {
document.querySelector('.btn.btn-primary.pull-right').click();
}, 5000);
有没有人有点击这个锚点的正确解决方案?
代码应该可以正常工作。您确实需要确保单击 right 元素:
console.log(document.querySelector('.btn.btn-primary.pull-right'));
根据评论,您实际上想要单击第五个这样的元素。那是:
document.querySelectorAll('.btn.btn-primary.pull-right').item(4).click();
document.querySelectorAll
returns a NodeList
of which we click
the fifth item
.
顺便说一句,您没有使用 jQuery,因此不需要在您的脚本中要求它。
与其让超时,不如考虑等待页面 load:
window.addEventListener('load', function() {
document.querySelectorAll('.btn.btn-primary.pull-right').item(4).click();
}, false);
我正在尝试让 Firefox 中的 Greasemonkey 单击这个没有 href
属性的锚点:
<a class="btn btn-primary pull-right"
ng-class="{'disabled': programsTabSubmitInProgress}"
ng-click="handleAddProgramClick()">
<i class="fa fa-plus"></i>
<span>Add Program</span>
</a>
我已经尝试过这行代码,但是行不通:
// ==UserScript==
// @name Final Test
// @description Final test results
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// @include https://qs-hub.qs.com/#/profiles/topuniversities/programs*
// ==/UserScript==
setTimeout(function () {
document.querySelector('.btn.btn-primary.pull-right').click();
}, 5000);
有没有人有点击这个锚点的正确解决方案?
代码应该可以正常工作。您确实需要确保单击 right 元素:
console.log(document.querySelector('.btn.btn-primary.pull-right'));
根据评论,您实际上想要单击第五个这样的元素。那是:
document.querySelectorAll('.btn.btn-primary.pull-right').item(4).click();
document.querySelectorAll
returns a NodeList
of which we click
the fifth item
.
顺便说一句,您没有使用 jQuery,因此不需要在您的脚本中要求它。
与其让超时,不如考虑等待页面 load:
window.addEventListener('load', function() {
document.querySelectorAll('.btn.btn-primary.pull-right').item(4).click();
}, false);