获取已经悬停的 link 的地址
Get address of link which is already hovered
我想为 tampermonkey 创建一个脚本,这样当我 已经 在 link 上并按下 Shift 键时,我会得到一个带有 link的地址。
我想出了下面有效的代码,弹出窗口确实打开了,但它没有显示任何地址,只有一个未定义的错误。
$(document).on('keydown', function ( e ) {
if (($('a:hover').length > 0) && (e.shiftKey) ) {
var url = $('a').attr('href');
alert(url);
}
});
我在网站上找到的解决方案是关于我何时开始悬停 link(鼠标悬停、mouseenter、mouseleave 等),而不是当我已经悬停它时。
我的猜测是 jquery 不知道要使用页面中的哪个元素,但我不知道如何告诉它使用已经悬停的元素。
知道我该如何解决这个问题吗?
该代码正在获取 第一个 link 的 href
,而不是悬停的那个。在您的情况下,第一个 link 显然没有 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>   <a href="Link_2.example">Link 2</a>   <a>Link 3</a>
运行 代码片段以查看实际效果。
我想为 tampermonkey 创建一个脚本,这样当我 已经 在 link 上并按下 Shift 键时,我会得到一个带有 link的地址。
我想出了下面有效的代码,弹出窗口确实打开了,但它没有显示任何地址,只有一个未定义的错误。
$(document).on('keydown', function ( e ) {
if (($('a:hover').length > 0) && (e.shiftKey) ) {
var url = $('a').attr('href');
alert(url);
}
});
我在网站上找到的解决方案是关于我何时开始悬停 link(鼠标悬停、mouseenter、mouseleave 等),而不是当我已经悬停它时。
我的猜测是 jquery 不知道要使用页面中的哪个元素,但我不知道如何告诉它使用已经悬停的元素。
知道我该如何解决这个问题吗?
该代码正在获取 第一个 link 的 href
,而不是悬停的那个。在您的情况下,第一个 link 显然没有 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>   <a href="Link_2.example">Link 2</a>   <a>Link 3</a>
运行 代码片段以查看实际效果。