我正在尝试阅读一篇文章,但我无意按下超链接“下一页”并尝试运行下面的代码。
( 的代码是什么? : 。按Enter键将找到“ x-hidden”类的超链接。 -focus”),然后单击它。
下面编写的代码可以通过在按下另一个网页的enterKey时单击一个按钮来工作,但是它不适用于超链接。我试图运行带有注释的代码,但没有一个代码解决了我的问题。
我要按的超链接的类别是“ .x-hidden-focus”
$(document).keypress(function(event){
var which = (event.which ? event.which : event.keyCode);
if(which == '13'){
//$(".x-hidden-focus")[0].click();
$(".x-hidden-focus").click();
}
});
注意::我正在将此代码用作tampermonkey中的用户脚本(希望有帮助)。
答案 0 :(得分:2)
您可以尝试简单地导航到您要单击的链接所描述的href:
document.location = $("a.x-hidden-focus").attr("href")
您的代码将成为:
$(document).keypress(function(event){
var which = (event.which ? event.which : event.keyCode);
if(which == '13'){
document.location = $("a.x-hidden-focus").attr("href");
}
});
根据您提供的文章,我们可以看到您要单击的按钮的html如下:
<a href="adding-a-controller" data-linktype="relative-path" class="x-hidden-focus">Next</a>
但是,如果您按下一步,我们可以看到现在有2个按钮:
<a href="getting-started" data-linktype="relative-path" class="x-hidden-focus">Previous</a>
<a href="adding-a-view" data-linktype="relative-path" class="x-hidden-focus">Next</a></p>
现在您的代码将是:
$(document).keypress(function(event){
var which = (event.which ? event.which : event.keyCode);
if(which == '13'){
document.location = $("a.x-hidden-focus:contains('Next')").attr("href");
}
});
编辑
我认为该类已经存在于元素上的假设是错误的。
由于仅在将链接悬停后才添加该类,因此您仅需要根据文本查找链接:
$("a:contains('Next')");
但是,通过使用容器类可以更加精确:
$("div.step-by-step").find("a:contains('Next')").attr("href")
答案 1 :(得分:1)
文档页面上的按钮是动态创建的,除非您单击/将其悬停,否则该类不存在。您需要通过
选择按钮$('a:contains("Next")')
然后获取结果三个链接中的第一个,并获取其href
$('a:contains("Next")').eq(0).attr('href')
现在您可以设置位置了
document.location = $('a:contains("Next")').eq(0).attr('href')
$(document).keypress(function(event){
var which = (event.which ? event.which : event.keyCode);
if(which == '13'){
document.location = $('a:contains("Next")').eq(0).attr('href')
}
});
答案 2 :(得分:0)
只需为以下单击事件添加侦听器:
$(document).on('keypress', function(e) {
if (e.keyCode === 13) {
$('.x-link').click();
}
$('.x-link').on('click', function() {
let url = $(this).attr('href')
window.open(url)
})
})
答案 3 :(得分:0)
如@bambam所说,您必须首先选择链接:
`$('a:contains("Next")')`
然后通过以下链接导航到链接所描述的href:
$('a:contains("Next")').eq(0).attr('href')
您可以对上一个链接进行同样的操作。您的最终代码为:
$(document).keydown(function(event){
var which = (event.which ? event.which : event.keyCode);
if(which == '13'){
document.location = $('a:contains("Next")').eq(0).attr('href')
}
else if(which == '16'){
document.location = $('a:contains("Previous")').eq(0).attr('href')
}
});
当您按 Enter 键码:13 时,您将转到下一页。
当您按下 Shift 键代码:16 时,您将转到上一页。