我正在尝试点击.vbseo_like_link
课程的每个链接。因此我使用以下代码:
jQ('.vbseo_like_link').each(function(){
if((jQ(this).parent().parent().parent().css("opacity") > 0.5) && (jQ(this).children().hasClass('hwz-unlike-button') == false))
this.click();
});
(使用jQ
代替$
以避免与网页本身发生jquery冲突。)
if语句只是一个检查,以确保按钮没有被按下,所以你可以忽略它。问题是在运行代码的下一个方面之前并没有按下所有按钮,按下下一页按钮:
var nextButton = jQ('#content ul a:contains("Next ›")');
if(nextButton.length > 0) {
nextButton[0].click();
}
出于某种原因,下一页在完成之前的点击之前就已经被点击了。这可能是因为页面不是一直加载的吗?这是我的完整代码:
// ==UserScript==
// @namespace likeButton
// @name Hit that like button!
// @description Hit that like button!
// @author Justin (Fogest)
// @match http://forums.hardwarezone.com.sg/*
// @run-at document-end
// ==/UserScript==
// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "window.jQ=jQuery.noConflict(true);(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
// the guts of this userscript
function main() {
jQ('.vbseo_like_link').each(function(){
if((jQ(this).parent().parent().parent().css("opacity") > 0.5) && (jQ(this).children().hasClass('hwz-unlike-button') == false))
this.click();
});
var nextButton = jQ('#content ul a:contains("Next ›")');
if(nextButton.length > 0) {
nextButton[0].click();
}
}
document.addEventListener('load', addJQuery(main));