195

有没有办法使用 JavaScript 点击我页面上的链接?

4

12 回答 12

271
document.getElementById('yourLinkID').click();
于 2010-09-17T20:03:34.620 回答
46

此功能至少在 Firefox 和 Internet Explorer 中有效。如果事件处理程序不取消默认操作,它将运行附加到链接的任何事件处理程序并加载链接的页面。

function clickLink(link) {
    var cancelled = false;

    if (document.createEvent) {
        var event = document.createEvent("MouseEvents");
        event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
        cancelled = !link.dispatchEvent(event);
    }
    else if (link.fireEvent) {
        cancelled = !link.fireEvent("onclick");
    }

    if (!cancelled) {
        window.location = link.href;
    }
}
于 2009-05-24T01:16:20.330 回答
44

如果您只想更改当前页面地址,只需在 Javascript 中执行此操作即可:

location.href = "http://www.example.com/test";
于 2009-05-23T23:44:35.817 回答
19

就像这样:

<a id="myLink" onclick="alert('link click');">LINK 1</a>
<a id="myLink2" onclick="document.getElementById('myLink').click()">Click link 1</a>

或在页面加载时:

<body onload="document.getElementById('myLink').click()">
...
<a id="myLink" onclick="alert('link click');">LINK 1</a>
...
</body>
于 2009-05-23T23:37:43.320 回答
13

单击链接的 jQuery 方法是

$('#LinkID').click();

对于 mailTo 链接,您必须编写以下代码

$('#LinkID')[0].click();
于 2015-09-24T10:24:59.453 回答
6

对我来说,我设法让它这样工作。我在 5000 毫秒内部署了自动点击,然后在 1000 毫秒后关闭了循环。然后只有 1 次自动点击。

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500)); setInterval(function () {clearInterval(myVar)}, 1000));</script>
于 2017-02-07T12:49:39.717 回答
4

上述许多方法已被弃用。现在建议使用这里找到的构造函数

function clickAnchorTag() {
    var event = document.createEvent('MouseEvent');
    event = new CustomEvent('click');
    var a = document.getElementById('nameOfID');
    a.dispatchEvent(event);
}

这将导致锚标记被单击,但它不会显示弹出窗口阻止程序是否处于活动状态,因此用户需要允许弹出窗口。

于 2017-05-03T17:27:34.257 回答
1

您可以将它们重定向到另一个页面。实际上,让它从字面上点击一个链接并前往它似乎是不必要的,但我不知道整个故事。

于 2009-05-24T01:04:09.853 回答
1

除了点击,您可以使用 Javascript 转发到点击将转到的 URL 吗?

也许你可以在身体 onLoad 中放一些东西去你想去的地方。

于 2009-05-23T23:40:49.193 回答
0

对于那些想要单击具有特定文本内容的所有链接的人来说,这将起作用:

for (const a of document.querySelectorAll("a")) {
  if (a.textContent.includes("<your text to be searched here>")) {
    a.click();
  }
}

参考:https ://stackoverflow.com/a/42907920/2361131

于 2021-08-17T22:10:41.747 回答
-2

客户端 JS 功能可在...时自动单击链接

这是一个示例,您检查隐藏表单输入的值,该输入包含从服务器传递的错误..您的客户端 JS 然后检查它的值并在您指定的另一个位置填充错误..在此案例弹出登录模式。

var signUperror = document.getElementById('handleError')

if (signUperror) {
  if(signUperror.innerHTML != ""){
  var clicker = function(){
    document.getElementById('signup').click()
  }
  clicker()
  }
}
于 2015-08-05T00:16:50.533 回答
-5

你不能让用户的鼠标做任何事情。但是您可以完全控制事件触发时发生的情况。

你可以做的是点击身体负荷。W3Schools 这里有一个例子

于 2009-05-23T23:35:10.953 回答