2013-01-11 58 views
-1

这里有什么问题;它不点击?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); 
} 
+0

'.click()'应该可以正常工作。你是从那个'$(“body> div:second> div:first> div:first> p:second”)''获得一个元素吗? – Cerbrus

回答

1

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

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

这将基本上选择HTML元素(而不是jQuery对象)并触发点击事件。

+0

没有工作我测试的链接是这样的 http://generator.premiumleech.com/link/qBtrxQmWvMr9y7XbcPSv87qNsbpjDVbs.html –