2011-06-13 89 views
0

我在我的個人電腦的Firefox瀏覽器中直接運行的移動網站上當前遇到問題。每次點擊一個按鈕,頁面都會重新加載,從而重置我的變量。我有此腳本:如何在頁面重新加載時使用Greasemonkey腳本記住變量

// ==UserScript== 
// @name  trada.net autoclick 55_1min_mobile 
// @namespace airtimeauction auto click 
// @include http://www.trada.net/Mobile/ 
// @version  0.1 
// @description Automatically click // ==/UserScript== 

var interval   = 57000; 
var bidClickTimer  = setInterval (function() {BidClick(); }, interval); 
var numBidClicks  = 0; 

function BidClick() 
{var bidBtn1=document.getElementById("ctl00_mainContentPlaceholder_AirtimeAuctionItem7_btn_bidNow"); 







    numBidClicks++; 
    if (numBidClicks > 500) 
    { 
     clearInterval (bidClickTimer); 
     bidClickTimer = ""; 
    } 
    else 
    { 
     bidBtn1.click (1); 

    } 
}; 



BidClick(); 

應該單擊按鈕每57秒時,但此刻卻單擊按鈕時,頁面重新加載,從而復位變量。我怎樣才能讓greasemonkey「記住」或在重新加載時將變量傳遞到下一頁/腳本?它會與GM_setValue有關嗎?它只會是這幾個變量,但第二個問題或問題將是,它會減去頁面從「57」秒重新加載所需的幾秒鐘嗎?我如何補償?

+0

在這裏顯示的代碼中,刪除最後一次對'BidClick();'的調用。這就是導致你的評論中提到的「間隔之前點擊」問題(關於另一個問題) – 2011-06-13 20:14:41

+0

第一個URL(你加載的)和後面的URL(即點擊加載)?任何細節? – 2011-06-13 20:18:25

+0

@ brock。是,t這裏有一些細節會改變。此代碼只是一個示例。在我想運行的那個中,還有另外兩個定時器。例如,如果R1100的拍賣已結束,除非更新,否則「現在出價」按鈕不可用,所以程序必須:1.更新頁面使其在3分鐘後再次可用; 2。 2小時後重新啓動1分鐘的點擊過程,這會首先將您轉到登錄頁面,然後再轉到此頁面。 http://www.trada.net/Mobile/p_Mobile_Home.aspx – Ludwig 2011-06-14 03:33:55

回答

0

是的,我認爲你必須使用GM_setValue/GM_getValue

如果您必須每57秒精確一次,請計算重新加載後應執行的下一個操作的時間,並使用GM_setValue進行存儲。 腳本啓動時,如果存儲下一個動作,則先讀取,如果是,則使用該時間安排下一個動作,然後計算動作後的時間,等等......

1

此外GM_setValue ... 您還可以使用新的Javascript「localStorage」對象或SQL Javascript API。

SQL方法的優點是它在腳本中的資源消耗非常微薄(考慮它;而不是連接一大堆結果的字符串,您可以隱藏每個結果並在需要時調用它以精確查詢,缺點是你必須建立一個SQL服務器,但使用SQLite這樣的東西,這些日子沒有什麼大不了的,甚至postgres或mysql可以迅速地在一臺筆記本電腦上...

相關問題