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


当前回答

该功能至少支持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();

就像这样:

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

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

for (const a of document.querySelectorAll("a")) { 如果(a.textContent。Includes("<你要搜索的文本>")){ a.click (); } }

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

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

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

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

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

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