【问题标题】:If a button appears on a page, automatically click it如果页面上出现按钮,则自动单击它
【发布时间】:2013-04-24 12:15:13
【问题描述】:
<a href="javascript:void(0)" class="PrmryBtnMed"
 id = "VERYLONGTEXT"

onclick="$(this).parents('form').submit(); return false;"><span>Dispatch to this address</span></a>

如果我要给人类下达指令,我会说:

  1. 寻找&lt;span&gt;Dispatch to this address&lt;/span&gt;链接;如果出现点击它。 (如果有多个这样的链接(例如有两个),只需点击第一个(或其中任何一个)

我正在使用 Greasekit,所以我希望使用 JavaScript 来实现。

谢谢!

【问题讨论】:

    标签: javascript greasekit


    【解决方案1】:

    更新:现在检查元素的内容

    var el = document.querySelector(".PrmryBtnMed"); //should only return first one
    if (el && (el.textContent.trim() == 'Dispatch to this address')) {
      el.click();
    } 
    

    查看querySelectortextContent 了解更多信息

    我还为你添加了一个 JsFiddle:http://jsfiddle.net/NrGVq/1/


    另一种方法是搜索整个页面,以防它不在匹配的元素内

    var inPage = document.documentElement.innerHTML.indexOf('text to search') > 0,
        el = document.querySelector(".PrmryBtnMed");
    
    if (inPage && el) el.click();
    

    【讨论】:

    • 非常感谢,但我正在使用 Greasekit,所以我不确定我是否可以使用 JQuery。 (可以用javascript完成吗?)(或者,有谁知道如何将JQuery加载到greasekit中?我将尝试用谷歌搜索答案)
    • 这不是 jQuery,这是原生 javascript。适用于现代浏览器和 IE8+
    • 如果你还想在greasekit中添加jQuery,其他用途,看看thepugautomatic.com/2009/07/jquery-in-greasekit
    • 啊,它是原生 JavaScript,我已更正。但是,经过反思,我不能使用这种方法,因为会在类似页面(也使用PrmryBtnMed)上获得不希望的点击。代码是否可以仅在页面上出现Select a shipping address 时运行?或者,如果搜索单个单词更容易,如果出现单词Eskdale 怎么办……然后单击按钮。 (谢谢!)
    • 更新了我在元素内或页面任何位置搜索文本的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多