获取已悬停的链接地址



我想为篡改猴创建一个脚本,这样当我已经在链接上并按 Shift 时,我就会得到一个带有链接地址的弹出窗口。

我想出了以下有效的代码,弹出窗口确实打开了,但它没有显示任何地址,只有一个未定义的错误。

$(document).on('keydown', function ( e ) {
if (($('a:hover').length > 0) && (e.shiftKey) ) {
var url = $('a').attr('href');
alert(url);    
}
});

我在网站上找到的解决方案是关于我何时开始悬停链接(鼠标悬停,鼠标输入,鼠标离开等(,而不是当我已经悬停它时。

我的猜测是 jquery 不知道从页面中使用哪个元素,但我不知道如何告诉它使用已经悬停的元素。

知道我该如何解决这个问题吗?

该代码获取第一个链接的href,而不是悬停的链接。 在您的情况下,第一个链接显然没有href属性,因此undefined.

这是工作代码:

$(document).on ('keydown', zEvent => {
if (zEvent.shiftKey) {
//-- Use 2 if()s for better performance / less impact on typing.
var hoveredLink = $('a:hover');
if (hoveredLink.length) {
var hoveredURL = hoveredLink.attr ('href');
console.log ("hoveredURL: ", hoveredURL || "Link has no href.");
}
}
} );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Click in this area, then hover over links and press shift.</p>
<a href="Link_1.example">Link 1</a> &emsp; <a href="Link_2.example">Link 2</a> &emsp; <a>Link 3</a>

运行代码段以查看其运行情况。

最新更新