2011-06-13 5 views
0

Ive는 현재 내 PC의 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

여기에 표시된 코드에서, 그 이유는 당신의 코멘트 (다른 ​​질문에서)에 언급 된 "click before interval"문제의 원인입니다. –

+0

첫 번째 URL (로드하는 것)과 이후의 URL (클릭이로드되는)? 전혀 자세히 설명하지 않습니까? –

+0

@ brock. 예, t 여기에 몇 가지 세부 사항이 있습니다. 이 코드는 예제 일뿐입니다. 내가 뛰고 싶은 사람에게는 또 다른 2 명의 타이머가있다. 예를 들어 R1100 경매가 완료된 경우 업데이트하지 않으면 "지금 입찰"버튼을 사용할 수 없으므로 프로그램에서 다음을 수행해야합니다. 1. 3 분이 지나면 다시 사용할 수 있도록 페이지를 업데이트합니다 (2 페이지). 2 시간 후에 1 분간의 클릭 프로세스를 다시 시작하십시오. 그러면 로그인 페이지로 먼저 이동 한 다음 다시이 페이지로 이동합니다. http://www.trada.net/Mobile/p_Mobile_Home.aspx – Ludwig

답변

0

예, GM_setValue/GM_getValue을 사용해야합니다.

정확히 57 초마다 처리해야하는 경우 다시로드 한 후 다음 작업이 수행되어야하는 시간을 계산하고 GM_setValue을 사용하여 저장하십시오. 스크립트가 시작되면 다음 동작이 저장되어있는 경우 먼저 읽습니다. 그렇다면 그 시간을 사용하여 다음 동작을 예약하고 그 후에 동작 시간을 계산하는 등의 작업을 수행합니다.

1

to GM_setValue ... 또한 새 Javascript "localStorage"개체 또는 SQL Javascript API를 사용할 수 있습니다.

SQL 접근법의 장점은 스크립트에서 자원 소비가 거의 없다는 것입니다 (생각해보십시오. 엄청난 결과 문자열을 연결하는 대신 각 결과를 멀리두고 정교하게 단점은 SQL 서버를 설정해야하지만 요즘에는 큰 문제가 아닌 SQLite와 같은 것을 사용하는 것입니다 ... 심지어는 postgres 또는 mysql도 랩톱에서 신속하게 회전시킬 수 있습니다 ...

관련 문제