我想为tampermonkey创建一个脚本,以便当我已经通过链接并按Shift时,我会弹出一个带有链接地址的弹出窗口。
我想出了下面的代码,它可以工作,弹出窗口确实打开了,但是它没有显示任何地址,只有一个未定义的错误。
$(document).on('keydown', function ( e ) {
if (($('a:hover').length > 0) && (e.shiftKey) ) {
var url = $('a').attr('href');
alert(url);
}
});
我在网站上找到的解决方案是关于当我开始悬停链接(鼠标悬停,mouseenter,mouseleave等)时,而不是当我已经悬停该链接时。
我的猜测是,jquery不知道要从页面中使用哪个元素,但是我不知道如何告诉它使用已经悬停的元素。
我知道如何解决这个问题吗?
答案 0 :(得分:0)
该代码正在获取 first 链接的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>
import stddraw
import sys
import stdio
#open the lexicon file
lexicon_input_file = open(sys.argv[1])
# copy the lexicon over from file
lexicon = lexicon_input_file.readlines()
#close the lexicon file
lexicon_input_file.close()
for i in range(len(lexicon)): #4000 words
# breaks down entire lexicon into each element incremented from 0,1,2,3,4,..
line_of_text = lexicon[i]
line_without_newline = line_of_text.rstrip('\n')
print(lexicon)
运行该代码段以查看其运行情况。