2012-02-11 4 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 - 다른 사용자가 귀하를 도우려는 "도움을 요청하십시오."하고 소리를 지르며 응답하지 않아 사이트를 다시 방문하지 않은 사람은 귀하의 사례를 많이 돕지 않습니다. 그런 괴롭힘을 멈추고 압박하십시오. – 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;  
     } 
    } 
})(); 
관련 문제