1
<a class="js-open-panel action-button" target="video-download" href="#">
        <em><span class="icon-16x16 icon-download"></span> Download</em></a>

Firebugを使用したxpath/html / body / div [2] / div [2] / section [3] / a [4]

このボタンをクリックしたいのですが、すべての """getElementBy"""が機能しませんでした

検索して大きなサイズの本を読みましたが、何も機能しませんでした

/*
function clickc(x)
{
var el = document.getElementsByTagName('em')[7];
var evt = document.createEvent("MouseEvents");
evt.initEvent("click", true, true);
el.dispatchEvent(evt);
}
setTimeout (clickc , 1);
*/
/*
document.getElementsByClassName("js-open-panel action-button").click();
*/

/*
function clickc(x)
{
var x = document.getElementsByTagName('em')[7].click();
click(x);
}
setTimeout (clickc , 1);
*/
4

1 に答える 1

1

ボタンがAJAXによってロードされない限り、以下が機能するはずです。

var dwnldBttn   = document.querySelector (
    "a.js-open-panel.action-button[target='video-download']"
);
var clickEvent  = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
dwnldBttn.dispatchEvent (clickEvent);


querySelector()XPathに対してCSSセレクター(Firebugも表示します)で機能することに 注意してください。



コメントから、AJAXがボタンをロードしていないようです(ただし、ボタンをアクティブ化するために使用される可能性があります)。

この完全なスクリプトを使用して開始します。@includeディレクティブ以外は何も変更しないでください。

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

setTimeout (clickDownloadButton, 1111);

function clickDownloadButton () {
    var dwnldBttn   = document.querySelector (
        "a.js-open-panel.action-button[target='video-download']"
    );
    var clickEvent  = document.createEvent ('MouseEvents');
    clickEvent.initEvent ('click', true, true);
    dwnldBttn.dispatchEvent (clickEvent);
}
于 2013-01-04T07:55:07.803 に答える