如何以编程方式单击带有 javascript 的链接?

IT技术 javascript hyperlink click anchor
2021-01-19 22:38:28

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

6个回答
document.getElementById('yourLinkID').click();
请注意,如果链接具有target="_blank"属性,则会为新窗口激活浏览器的弹出窗口阻止程序。
2021-03-14 22:38:28
实际上,到目前为止,它适用于我尝试过的所有浏览器,包括 IE、Safari、Chrome、Firefox 和 Opera。
2021-03-24 22:38:28

此功能至少适用于 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;
    }
}
马修是对的,stackoverflow.com/questions/809057/...有更多关于原因的信息。跨浏览器很有趣:)
2021-03-16 22:38:28
它不尊重target属性或<base target="frame">
2021-03-27 22:38:28

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

location.href = "http://www.example.com/test";
这种方法在 PyQT4 中很有帮助。click() 调用对我不起作用。谢谢!
2021-03-15 22:38:28
投票否决,因为我不喜欢围绕用例而不是解决它的答案。“我认为这是你的意图,我不知道你的限制,所以在概念真空中的概念领域:使用这个。”
2021-03-16 22:38:28
我也尝试过click()在其他地方和上面提出的调用方法,但它在 IE9 中不起作用,但设置location.href实际上从mailto:链接发送了电子邮件很棒的解决方案!
2021-03-16 22:38:28
我投了赞成票,因为我正在寻找mailto:在 userjs 脚本中单击链接的一些不错的解决方案绝对节省了我的时间。我准备创建a元素并进行一些“程序化点击” stackoverflow.com/questions/809057/...
2021-03-27 22:38:28
没有解决我想单击链接的问题中的用例。该链接无处可去,但还有其他与点击事件相关的内容。我不想改变位置。
2021-03-30 22:38:28

就像那样:

<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>
是的,但是必须发生其他一些点击。
2021-03-25 22:38:28
Firefox 似乎不支持单击方法。大多数答案,包括我的,都没有帮助:)
2021-03-30 22:38:28
感谢您的帮助,但我使用 firefox 3 并且它不起作用,在错误控制台中显示 Error: document.getElementById("myLink").click is not a function
2021-04-02 22:38:28
您不能在任何事件上执行此操作,例如页面加载?
2021-04-05 22:38:28
@Canavar:尝试点击而不是点击
2021-04-08 22:38:28

单击链接的 jQuery 方式是

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

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

$('#LinkID')[0].click();
这行不通?你试过了吗?我希望你明白“LinkID”是什么意思。如果现在有人在没有 jQuery 的情况下落后于 js,我真的会感到惊讶。无论如何,在获得一些积分后可以随意投票
2021-03-11 22:38:28
这对我来说也不适用于单击a链接。使用[0].click()版本有效,我相信这与document.getElementById('yourLinkID').click();答案相同
2021-03-13 22:38:28
我试过这个,mailTo 链接在 React Native 中不起作用。使用这个:window.location.href = "mailto:address@gmail.com";
2021-03-14 22:38:28
Firefox 浏览器:这适用于 <input> 但不适用于 <a>
2021-03-20 22:38:28
这不起作用。这不是他提出的问题的答案。如果我有更多的分数,我会对此给出否定的答案。
2021-03-26 22:38:28