Greasemonkey脚本没有单击按钮

时间:2013-01-11 14:06:37

标签: javascript jquery button click greasemonkey

这里有什么问题;它没有点击?

我的代码:

// ==UserScript==
// @name        premiumleech
// @namespace   premiumleech
// @include     http://generator.premiumleech.com/link/*.html
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.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.
*/

/*
<p class="leech-btn"><button onclick="javascript:window.open('http://generator.premiumleech.com/redir/BtPpnGJv2HcZRa2BTxsEQzUdDQbb6WO1','_blank');">Leech it!</button></p>
*/
/*
/html/body/div[2]/div/section/p[2]
*/

var targBtn = $("#content > p.leech-btn > button");
if (targBtn.length) {
targBtn[0].click ();
}


我首先尝试了JavaScript,但未能对其进行调整,因为queryselector“无法在该按钮上找到任何单词Weired”并且get.ByTagName因为没有明显原因而至少失败了

function clickc()
{
var el = document.querySelector("_blank"); or document.getElementsByTagName("TABLE");
var evt = document.createEvent("MouseEvents");
event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
el.dispatchEvent(evt);
}

1 个答案:

答案 0 :(得分:1)

jQuery的click()方法不会触发元素上的click操作。它会触发为click事件处理程序注册的操作,如果传递了参数,则它将用作单击该元素的回调函数。要点击该HTML元素,您需要使用

$("body > div:second > div:first > div:first > p:second").get(0).click();

这实际上将选择HTML元素(而不是jQuery对象)并触发click事件。