【问题标题】:Tampermonkey clicking a button by classTampermonkey 按类单击按钮
【发布时间】:2014-07-22 11:34:36
【问题描述】:

所以我有一个学校问题,我需要访问一个站点,但是这个站点需要我通过大约 4 个门户才能到达那里,我希望只为我编写一个快速脚本来执行此操作。问题出现在网站非常草率并且在某些按钮上的名称相同的地方,所以我想根据类单击按钮

类是 readit2、readit23、readit239 和 readit2394

 $(function(){
        document.getElementByClassName(readit2).click();
       });

我认为上面的代码会在加载第一页后立即单击它,但没有。任何帮助都会很棒

// ==UserScript==
// @name       dumb spider web
// @namespace  ===============
// @version    0.1
// @description  gets me through this dumb stuff
// @match      ===============
// @copyright  2012+, You
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==

编辑 ^ 添加标题内容

更多编辑:

它现在可以通过控制台工作,但通过篡改猴子或油脂猴子我无法让它实际执行操作。

$(function(){
    document.getElementsByClassName("readit2")[0].click();
});

通过控制台工作,但在脚本启动时不运行。

【问题讨论】:

  • 你想如何运行它?用户脚本还是只是在控制台中尝试?
  • 我正在尝试通过 chrome 应用程序中内置的“tampermonkey”运行它
  • 您发布了它的标题,抱歉忽略了这一点。您是否为 jquery 包含了@require?如果您发布标题部分可能会有所帮助(如果您想保留该隐私,只需删除您网站的网址)。我认为this 是它工作的一个例子。
  • 用我所拥有的内容编辑了原始帖子,我还尝试了您发送的带有要求的链接,并用它替换了我的链接,没有任何变化。
  • 还在寻求帮助解决这个问题,OP再次编辑

标签: function greasemonkey tampermonkey


【解决方案1】:

问题是您正在尝试访问一些仍然不存在的节点。将此添加到您的脚本中:

// @run-at  document-end

然后确保所有节点都已加载并打印。
另一个绕过是这样的:

$(document).ready(
    //your script
);

【讨论】:

    【解决方案2】:

    我开始查看所有错误的东西,您的原始代码:

    $(function(){
        document.getElementByClassName(readit2).click();
    });
    

    问题在于调用应该是getElementsByClassName(复数“元素”),因为类通常是共享属性。这也返回一个数组,所以如果你确定只有 1 个:

    $(function(){
        document.getElementsByClassName("readit2")[0].click();
    });
    

    如果没有,我建议获取文本并验证它是否包含您期望的内容。

    编辑:添加引号。

    【讨论】:

    • 我已经尝试过这段代码,但它没有正常工作,我再次查看了页面,这是唯一使用类“readit2”的东西,它是一个按钮。 问题是还有其他按钮具有不同类的确切代码
    • @user3699068 - 一次执行 1 步,尝试在 chrome 控制台中运行 document.getElementsByClassName(readit2)[0].click();。如果它有效,那么问题可能是 Tampermonkey 如何运行脚本。
    • 它说参考错误:readit2 未定义消息:“readit2 未定义”即使它是,我是否必须指定它的外观或它位于哪个 Div?如果需要,不知道该怎么做=/
    • 我以为你定义了一个变量“readit2”。只需引用它,因为它是一个字符串文字。
    • ah gotchyah, EDIT
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多