【问题标题】:Simulate button click with JavaScript [duplicate]使用 JavaScript 模拟按钮单击 [重复]
【发布时间】:2015-10-10 03:27:26
【问题描述】:

我想用 Greasemonkey 创建一个简单的自动跳过,但我发现在 Stack Overflow 上没有找到真正适合我的解决方案。

我需要点击这个按钮:

<div tip="next" title="Next" class="linkable fa fa-arrow-right" ng-click="View.next()"></div>

它没有任何 id 或名称,并且隐藏在许多 div 的深处。我可以通过模拟回车键或右箭头键来绕过点击,但这对我也不起作用。

【问题讨论】:

  • 为什么这个按钮没有id或者名字?
  • 当您单击按钮时会触发事件并调用函数?直接调用函数就可以了,不用花时间。
  • @SaschaP 不知道。这不是我的网站,这就是我想用 GreaseMoneky 创建脚本的原因:-)
  • @SaschaP 这不是他的代码,元素不需要有 id、class 或 name。 at: Anon 该函数可能是作用域的,因此greasemonkey 可能无法运行该函数。
  • 按钮在哪里?我只看到块级元素!

标签: javascript greasemonkey


【解决方案1】:

试试这个:

document.querySelector('div[tip="next"]').click()

据我所见,这些 GreaseMonkey 脚本在页面加载时运行。使用它我能够模拟点击。

// ==UserScript==
// @name        test
// @namespace   blargtest
// @include     https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/
// @version     1
// @grant       none
// ==/UserScript==
setTimeout(
    function () {
        document.querySelector('div[tip="next"]').click();
    }, 1000
);

您可以将其设为 setInterval 并让它每秒点击一次。

【讨论】:

  • This 是我的测试脚本,它似乎不起作用:-(
  • 我不熟悉 GreaseMonkey 脚本,但是如果您运行我在浏览器控制台中放置的代码行,它就可以工作。让我看看油猴,看看我能不能弄明白。
  • 是的,你是对的,它在控制台中工作,会尝试使用它:)
  • @MarekLukáš 在单击之前,您是否确定 DOM 已加载且 div 存在?尝试用try-catch 块包围该行并使用console.log 调试该行。
  • 为我工作!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
  • 2020-11-24
  • 2021-04-07
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多