2012-04-16 3 views
1

Помогите, может ли кто-нибудь помочь мне изменить переменную javascript с помощью greasemonkey?Изменение Javascript Variable с помощью Greasemonkey

Я уже следующие ответы на этот вопрос: 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'? Но у меня нет доступа к файлу. Я хочу изменить значение счетчика ** значение ** из 'counter = 20;' с 'counter = 1;' на каком-то веб-сайте с помощью Greasemonkey, поэтому я могу быстрее пропустить ** таймер **. Можете ли вы сказать мне, как это сделать? – yudayyy

ответ

1

counter - локальная переменная внутри функции. Вы не сможете изменить его значение, если вы не можете изменить функцию для использования глобальной переменной. Если у вас нет доступа к коду, вы можете попробовать заменить всю функцию startTimer своей собственной реализацией. Я не могу сказать из вашего примера, но вы можете только заменить startTimer, если он глобальный.

+0

Спасибо @mikerobi, я пытаюсь заменить функцию новым простым скриптом на этом сайте: [link] (http://www.squakmt.com/replacing_javascript/index.htm). но функция 'startTimer' в файле' idconnect.js' все еще вызывается на странице. Ну, я должен сказать, что я все еще новичок в Greasemonkey. – yudayyy

+0

@yudayyy, я забыл упомянуть, вы можете заменить startTimer только в том случае, если он является глобальным. – mikerobi

+0

, значит, я не могу переопределить функцию на 'idconnect.js' правильно? – yudayyy

Смежные вопросы