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

时间:2015-10-05 15:51:54

标签: javascript jquery hyperlink click greasemonkey

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

<a href="/cgi/admin/user/ssh_login/*" target="_blank">SSH</a>

带*的部分每次都不同。

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

2 个答案:

答案 0 :(得分:8)

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

编辑:

在Chrome背景标签中打开链接(基于this answer

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);
}

答案 1 :(得分:0)

如果anchor的内容始终是&#39; SSH&#39;你可以使用;

$("a:contains('SSH')")