如果没有元素ID,请单击带有Javascript的链接

Mis*_*xia 3 javascript jquery greasemonkey click hyperlink

请原谅我,如果已经在某个地方得到了解答,但我找不到我想要的东西.我在Chrome中使用Greasemonkey,在Chrome中使用Tampermonkey尝试创建Javascipt来改变我与网页的交互方式.在页面加载时,我想在后台的新选项卡中自动打开一个链接.每次加载页面时,此链接略有不同.网页上的元素是这样的:

<a href="/cgi/admin/user/ssh_login/*" target="_blank">SSH</a>
Run Code Online (Sandbox Code Playgroud)

带*的部分每次都是不同的.

那么如果它没有elementID或者至少是一个elementName,我如何在页面加载时自动点击该链接?

Bri*_*ian 8

var link = document.querySelector('[href*="/cgi/admin/user/ssh_login/"]');
link.click();
Run Code Online (Sandbox Code Playgroud)

编辑:

在chrome中的背景选项卡中打开链接(基于此答案)

var link = document.querySelector('[href*="/cgi/admin/user/ssh_login/"]');
var url = link.getAttribute('href');
openNewBackgroundTab(url);

function openNewBackgroundTab(url){
    var a = document.createElement("a");
    a.href = url;
    var evt = document.createEvent("MouseEvents");
    //the tenth parameter of initMouseEvent sets ctrl key
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
                                true, false, false, false, 0, null);
    a.dispatchEvent(evt);
}
Run Code Online (Sandbox Code Playgroud)

  • `onclick`是一个内联事件监听器.`click()`模拟鼠标点击. (3认同)