我如何用javascript编程点击链接?

是否有一种方法可以使用JavaScript点击我页面上的链接?

484465 次浏览

你不能让用户的鼠标做任何事情。但当事件触发时,你可以完全控制发生什么。

你能做的就是点击body load。W3Schools有一个例子在这里。

就像这样:

<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>

而不是点击,你可以转发的URL,点击将使用Javascript?

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

如果你只想改变当前页面地址,你可以在Javascript中简单地这样做:

location.href = "http://www.example.com/test";

你可以把它们重定向到另一个页面。实际上,让它点击一个链接并前往它似乎没有必要,但我不知道整个故事。

该功能至少支持Firefox和ie浏览器。它运行附加到链接的任何事件处理程序,如果事件处理程序没有取消默认操作,则加载链接页面。

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;
}
}
document.getElementById('yourLinkID').click();

客户端JS函数自动点击链接时…

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

var signUperror = document.getElementById('handleError')


if (signUperror) {
if(signUperror.innerHTML != ""){
var clicker = function(){
document.getElementById('signup').click()
}
clicker()
}
}

jQuery的点击链接的方法是

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

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

$('#LinkID')[0].click();

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

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500)); setInterval(function () {clearInterval(myVar)}, 1000));</script>

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

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

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

对于那些想要点击所有链接,有一个特定的文本内容,这将工作:

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