2013-02-08 1 views
1

Pinterest 창이 열리면 Greasemonkey 용 스크립트를 자동으로 고정하려고합니다.Greasemonkey로 자동으로 고정하려고합니다.

CODE : 나는 코드의 끝 부분을 console.log를 설정하면

body = document.body; 

if (body != null) { 
    var prepare = document.getElementsByTagName("button"); 
    var buttons = ""; 

    for (var i = 0; i < prepare.length; i++){ 
     if (prepare[i].getAttribute("data-text-pin-it")!=null) { 
      buttons = prepare[i]; 
      break; 
     } 
    } 
    buttons.click(); 
} 

이 실행됩니다, 인쇄,하지만 버튼을 클릭하지 않습니다!

파이어 버그 콘솔에서 동일한 명령어를 실행하면 원하는 결과를 얻습니다.

답변

0

스크립트가 실행 된 후 Pinterest 버튼이 AJAX에 의해 추가되는 것은 의심의 여지가 없습니다.

AJAX 보정 기술을 사용하여이를 기다립니다. 여기 은 버튼을 클릭 jQuery를하고 the waitForKeyElements() utility의 굉장한 능력을 사용하는 완전한 스크립트입니다 :

// ==UserScript== 
// @name  YOUR_SCRIPT_NAME 
// @include http://YOUR_SERVER.COM/YOUR_PATH/* 
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js 
// @grant GM_addStyle 
// ==/UserScript== 
/*- The @grant directive is needed to work around a design change 
    introduced in GM 1.0. It restores the sandbox. 
*/ 

waitForKeyElements ("button[data-text-pin-it]", clickPinterestBtn); 

function clickPinterestBtn (jNode) { 
    jNode[0].click(); 
} 
+0

같은 문제 ... 나는 함수 내에서 CONSOLE.LOG (jNode)를 설정하고 버튼을 보여 주지만, '아무튼 그것을 클릭하십시오! 편집 : Chrome에서는 작동하지만 Firefox에서는 작동하지 않습니다! – joseantgv

+0

Tampermonkey를 사용하고 있습니까? 그렇지 않다면 불가능합니다. Firefox + GM에서 작동하지 않지만 Chrome + Tampermonkey에서 작동하는 경우'@ require'd 파일이 아마도 복사되지 않을 것입니다 (GM의 알려진 버그). [이 다른 대답] (http://stackoverflow.com/a/3508463/331508)의 방법에 따라 스크립트를 다시 설치하십시오. –