2012-02-11 7 views
0

[フォーカスした]タブを選択したときにsetTimeout関数を実行します。私はMozilla(Greasemonkey)を使用しています。タブがフォーカスを取得してから少し遅れてボタンをクリックしたい

は、ここで私が試したものです:ステップへ

// ==UserScript== 
// @name   [udit]click stumble button on pages 
// @namespace  uditeewd 
// @include  http://www.stumbleupon.com/interest/* 
// @include  http://www.stumbleupon.com/channel/* 
// @include  http://www.stumbleupon.com/stumbler/* 
// @exclude  http://www.stumbleupon.com/stumbler/*/likes/interest* 
// @exclude  http://www.stumbleupon.com/interest/*/followers* 
// @exclude  http://www.stumbleupon.com/channel/*/followers* 
// @exclude  file:///* 
// ==/UserScript== 

setTimeout(function(ButtonClickAction) { 
var stumbButt = document.querySelector ("div.stumbler-card a.stumble-button"); 
var clickEvent = document.createEvent ('MouseEvents'); 
clickEvent.initEvent ('click', true, true); 
stumbButt.dispatchEvent (clickEvent); 
}, 0); 

document.addEventListener ("onfocus", ButtonClickAction, true); 

答えて

1

ブレイクそれを下:

  1. あなたは、タブのフォーカスは、タイマーを開始したいです。
  2. 時刻が来たら、ボタンをクリックするようにします。

「タブ」を構成するノードを定義する必要があることに注意してください。あなたの現在のコードは、ページ全体のフォーカスを失います。

var theTab = document.querySelector (YOU NEED TO FIGURE THIS OUT, IT'S HIGHLY PAGE SPECIFIC); 

theTab.addEventListener ("focus", FireClickDelay, true); 

function FireClickDelay() {  
    setTimeout (ClickTheButton, 100); 
} 

function ClickTheButton() {  
    var stumbButt = document.querySelector ("div.stumbler-card a.stumble-button"); 
    var clickEvent = document.createEvent ('MouseEvents'); 
    clickEvent.initEvent ('click', true, true); 
    stumbButt.dispatchEvent (clickEvent); 
} 
+0

私はどのような質問をする必要がありますか?ページの例:http://www.stumbleupon.com/interest/Psychology – adi

+0

URLでタブなどの特定のURLのタブで実行するように設定できますかhttp://www.stumbleupon.com/interest/* – adi

+1

@adi - 彼らがあなたの事件を助けてくれていないと答えたので、あなたを助けようとしている他のユーザーと、サイトに戻っていない他のユーザーの "helpeeeeeeeeeeeee"と叫んでいます。そのような悪いことからやめてください。 – Kev

0
// ==UserScript== 
// @name   [udit]click stumble button on pages 
// @namespace  uditeewd 
// @include  http://www.stumbleupon.com/interest/* 
// @include  http://www.stumbleupon.com/channel/* 
// @include  http://www.stumbleupon.com/stumbler/* 
// @exclude  http://www.stumbleupon.com/stumbler/*/likes/interest* 
// @exclude  http://www.stumbleupon.com/interest/*/followers* 
// @exclude  http://www.stumbleupon.com/channel/*/followers* 
// @exclude  file:///* 
// ==/UserScript== 

window.onfocus = function() { 
    setTimeout (ClickTheButton, 0); 
}; 

function ClickTheButton() {  
    var stumbButt = document.querySelector ("div.stumbler-card a.stumble-button"); 
    var clickEvent = document.createEvent ('MouseEvents'); 
    clickEvent.initEvent ('click', true, true); 
    stumbButt.dispatchEvent (clickEvent); 
} 
0

window.onblurwindow.onfocus

ので、コードのようなものでしょうか?

(function(){ 
    var timer = null; 
    var has_switched = false; 

    window.onblur = function(){ 
     timer = settimeout(changeitup, 2000); 
    } 

    window.onfocus = function(){ 
     if(timer) cleartimeout(timer); 
    } 

    function changeitup(){ 
     if(has_switched == false){ 
      alert('hey! who switched tabs?') 
      has_switched = true;  
     } 
    } 
})();