2012-04-16 27 views
1

ヘルプ、誰でもgreasemonkeyを使用してjavascript変数を変更する方法を教えてください。Greasemonkeyを使用してJavascript変数を変更する

私はすでにこの質問への答えを次 How can I change a JavaScript variable using Greasemonkey?

も、このリンク: http://webdeveloper.com/forum/showthread.php?t=166658

が、このスクリプトで機能にカウンタ変数値を変更する私はできない:

// ==UserScript== 
// @name  My Fancy New Userscript 
// @namespace http://use.i.E.your.homepage/ 
// @version 0.1 
// @description enter something useful 
// @match  https://welcome.telkomhotspot.info/telkomhs/freemax/ 
// @copyright 2012+, You 
// ==/UserScript== 

unsafeWindow.counter = 1; 

私が変更したい機能は次のとおりです。

function startTimer(){ 
var counter = 20; 
var wait = 0; 
var displayCounter = true; 
var startCounting = false; 
$("#timerTransition").html(getLoadingCounter()) 
.everyTime(1000,function(i){ 
    if(wait==0){ 
     if(displayCounter){ 
      $("#loadingCounter").fadeOut(500,function(){ 
       $("#timerTransition").html(getTimerContainer(counter)); 
       $("#timerContainer").fadeIn(500,function(){ 
        startCounting = true; 
       }); 
      }); 
     } 
     displayCounter = false; 
     if(startCounting){ 
      counter = counter - 1; 
      $("#counter").html(counter); 
      if(counter == 0) { 

       if(foundCookies){ 
        $("#timerTransition").stopTime().html(getAuthCookiesLogin()); 
       } 
       else{ 
        $("#timerTransition").stopTime().html(getAuthButton()); 
        $("#authBtnContainer").fadeIn(0).click(function(){ 
         $(this).fadeOut(0); 
         closeAds(); 
         openAuthForm(); 
        }); 
       } 
      } 
     } 
    } 
    else{ 
     wait = wait-1; 
    } 
}); 
} 

私は既にGoogleで検索していますが、変数を変更することはできません。

+1

'unsafeWindow.counter'を定義した場合は、' unsafeWindow.counter'も読んで、 'counter'をどこでも' unsafeWindow.counter'に置き換えてください。 – noob

+0

'counter 'を' unsafeWindow.counter'に置き換えたのですか?しかし、私はファイルへのアクセス権を持っていません。私はGreasemonkeyを使っていくつかのウェブサイトで 'counter = 20;'から 'counter = 1;'でカウンタ変数** value **を修正したいので、** timer **をすばやくスキップすることができます。どうやって教えてくれますか? – yudayyy

答えて

1

counterは、関数内のローカル変数です。グローバル変数を使用するように関数を変更できない限り、その値を変更することはできません。コードにアクセスできない場合は、startTimer関数全体を独自の実装に置き換えることができます。私はあなたの例からはわかりませんが、グローバルであればstartTimerを置き換えることができます。

+0

ありがとう@mikerobi、私はこのウェブサイトで新しい単純なスクリプトで関数を置き換えようとしています:[link](http://www.squakmt.com/replacing_javascript/index.htm)。 'idconnect.js'ファイルの' startTimer'関数はまだページによって呼び出されています。 まあ、私はまだGreasemonkeyで新しいと言う必要があります。 – yudayyy

+0

@yudayyy、忘れてしまったのは、グローバルでもstartTimerを置き換えることができるだけです。 – mikerobi

+0

だから、 'idconnect.js'の関数をオーバーライドすることはできません。 – yudayyy

関連する問題