【问题标题】:Button click help (Greasemonkey)按钮点击帮助(Greasemonkey)
【发布时间】:2011-06-20 21:22:01
【问题描述】:

请帮帮我,我需要点击这 2 个按钮链接:

<li class="booster" id="b_10">
    <img alt="" src="http://www.erepublik.com/images/parts/pixel.gif" class="overlay" />
    <div class="top">
        <strong><a href="javascript:;">Army boots</a></strong>
        <big>0</big>
    </div>
    <img src="http://static.erepublik.com/uploads/boosters/10_77x77.png" alt="" />
    <em class="give like10"></em>
</li>

还有:

<span class="tip" id="tip_534689">
    <a class="workTrigger" companyId="534689" href="javascript:;">
        <img src="http://www.erepublik.com/images/modules/myland/tip_icons/work.png" alt="" />
    </a>
</span>

【问题讨论】:

  • 对于这么少的代码,不要在将来可能会消失的外部站点链接到它!此外,我们需要完整的页面代码来帮助选择选择器来选择正确的节点。因此,将 那个 代码发布到 mibpaste.com、pastebin.com 等(或者 - 更好的是 - 链接到该页面,如果我们可以在没有过度注册的情况下看到它。 )

标签: javascript button click greasemonkey


【解决方案1】:

这样的事情应该可以工作,但// @include 指令应该更具体,如果可能的话,jQuery 选择器可能需要问题中未提供的信息。

艺术在于选择选择器以获取您所追求的链接/按钮/节点。为获得最佳效果,这通常需要查看整个页面的代码。

// ==UserScript==
// @name            _Generic Link clicker
// @include         http://www.erepublik.com/*
// @require         http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
// ==/UserScript==

var topBoosterLink  = $("li.booster > div.top > strong > a:first");
var workTipLink     = $("span.tip > a.workTrigger:first");

clickJ_Node (topBoosterLink);
clickJ_Node (workTipLink);


function clickJ_Node (jNode)
{
    if (jNode && jNode.length)
    {
        var clickEvent  = document.createEvent ("HTMLEvents");
        clickEvent.initEvent ("click", true, true);
        jNode[0].dispatchEvent (clickEvent);
    }
    else
        GM_log ('No node found to click!');
}

【讨论】:

  • 如您所料,它不起作用。第一个链接的完整页面来源是pastebin.com/bRDFmh8Z,第二个链接的完整页面来源是pastebin.com/RA1v8Jyz
  • @user796738,使用 pastebin 代码,我已验证答案脚本 确实 单击了相应的链接(仅测试了第一个链接)。 但是,该页面发生了几件事。首先,单击“军靴”是否仅设置其复选框?脚本不这样做吗?它究竟如何“不起作用”?其次,该页面捕获了这些“按钮”上的各种鼠标事件,并且有一个过度启动的图像。可能需要一系列事件。他们可能已采取措施阻止这种脚本编写。
猜你喜欢
  • 1970-01-01
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 2011-07-18
  • 1970-01-01
相关资源
最近更新 更多