我是JavaScript的初學者。我需要知道這是否可行,如果是,那麼該怎麼做。我的Greasemonkey腳本如何自動重新加載頁面,並自動點擊一個按鈕?
我想創建一個Greasemonkey腳本,每隔一小時自動重新加載一個網頁,然後重新加載頁面後,我希望它爲我點擊一個按鈕。
這可能嗎?
我是JavaScript的初學者。我需要知道這是否可行,如果是,那麼該怎麼做。我的Greasemonkey腳本如何自動重新加載頁面,並自動點擊一個按鈕?
我想創建一個Greasemonkey腳本,每隔一小時自動重新加載一個網頁,然後重新加載頁面後,我希望它爲我點擊一個按鈕。
這可能嗎?
對於點擊的東西,請參閱this answer。請參閱a javascript reference for location.reload()
。請參閱a better javascript reference for setTimeout()
。
由於按鈕可以通過AJAX加載(需要更多信息),參考the waitForKeyElements()
utility,用於處理AJAX延遲/修改。
開始學習jQuery;它會爲你節省大量的痛苦和努力。
確定所需按鈕的jQuery選擇器。您可以使用像Firebug這樣的工具來幫助解決這個問題(請注意,jQuery選擇器和CSS選擇器大部分是相同的,但jQuery有更多的選項/功能)。
例如,如果網頁的HTML有一個看起來像這樣的部分:
<div id="content">
<p>Blah, blah, blather...</p>
<h2>Your available actions:</h2>
<button class="respBtn">Like</button>
<button class="respBtn">Hate</button>
<button id="bestOption" class="respBtn">Nuke them all</button>
</div>
然後對3個按鍵選擇可能是(分別):
$("#content button.respBtn:contains('Like')");
$("#content button.respBtn:contains('Hate')");
$("#bestOption");
(總是使用id
,如果元素有一個。)
全部放在一起,這裏是一個完整的的Greasemonkey腳本重新加載和點擊:
// ==UserScript==
// @name _Reload and click demo
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @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.
*/
waitForKeyElements ("#bestOption", clickTargetButton);
function clickTargetButton (jNode) {
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
jNode[0].dispatchEvent (clickEvent);
}
//--- Reload after 1 hour (1000 * 60 * 60 milliseconds)
setTimeout (location.reload, 1000 * 60 * 60);
是,使用'addEventListener','setTimeout'和'click'。 – Jay
那麼我該如何開始呢?是否有可能將其設置爲重新加載並以隨機間隔點擊? –