我需要为 GM 组合这两个脚本。一个从列表中打开新页面,另一个单击“关注”按钮。
脚本 1:如何自动按顺序打开页面列表?
我试图自己组合它们,但未能创建一个完全重新加载页面的工作脚本,即使它们按顺序放在列表中(如果你阅读了另一个问题,你会明白我的意思)。
这是我尝试过的,但它没有按预期工作,因为它没有正确重新加载页面并继续执行其任务:
// ==UserScript==
// @name Follow People on INK361
// @description Follow People from our FB Page's list INK361
// @include http://ink361.com*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a major design
change introduced in GM 1.0.
It restores the sandbox.
*/
var urlsToLoad = [
'http://ink361.com/#/users/30742610/photos',
'http://ink361.com/#/users/193869245/photos',
'http://ink361.com/#/users/215062853/photos',
'http://ink361.com/#/users/218295575/photos'
];
/*--- Since many of these sites load large pictures, Chrome's and
Firefox's injection may fire a good deal before the image(s)
finish loading.
So, insure script fires after load:
*/
//--- Catch new pages loaded by WELL BEHAVED ajax.
window.addEventListener ("hashchange", FireTimerA, false);
function FiretimerA () {
waitForKeyElements ("a.simplebutton:contains('follow')", FireTimer());
}
function FireTimer (jNode) {
if ( ! /^\s*follow\s*$/i.test () ) {
return false;
}
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
jNode[0].dispatchEvent (clickEvent);
GotoNextURL();
}
function GotoNextURL () {
var numUrls = urlsToLoad.length;
var urlIdx = urlsToLoad.indexOf (location.href);
urlIdx++;
if (urlIdx >= numUrls)
urlIdx = 0;
location.href = urlsToLoad[urlIdx];
}