1

Pinterestウィンドウが開いたときにGreasemonkeyが自動的に固定するスクリプトを作成しようとしています。

コード:

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();
}

コードの最後にconsole.logを設定すると実行されますが、ボタンがクリックされません!

Firebugコンソールで同じ命令を実行すると、目的の効果が得られます。

4

1 に答える 1

0

Pinterestのボタンは、間違いなくAJAXによって追加されています。スクリプトが実行されてからずっと後のことです。

AJAX補正技術を使用してそれを待ちます。これは、jQueryのすばらしい機能とwaitForKeyElements ()ユーティリティを使用してそのボタンをクリックする完全なスクリプトです。

// ==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 ();
}
于 2013-02-08T14:20:17.133 に答える