ank*_*kit 53 javascript jquery onclick
我想使用JavaScript模拟页面上任何链接的点击.如果该链接具有与其"onclick"事件绑定的某些功能(由任何其他JS我没有任何控制),则必须调用该函数,否则链接应以正常方式运行并打开新页面.
我不确定只检查'onclick'处理程序的值就足够了.我想构建它,以便它适用于任何链接元素.
我无法使用任何JS库(不一定是jQuery)或简单地使用JavaScript来控制可能绑定到链接的onclick事件的函数.
编辑:在下面的答案的帮助下,看起来可以检查使用jQuery附加的事件处理程序或使用该onclick属性.如何检查使用addEventListener/任何其他JS库附加的事件处理程序,以便它是万无一失的?
Jan*_*čič 49
您可以使用单击功能触发所选元素上的单击事件.
例:
$( 'selector for your link' ).click ();
Run Code Online (Sandbox Code Playgroud)
您可以在jQuery的文档中了解各种选择器.
编辑:像下面的评论者说的那样; 这仅适用于使用jQuery,内联或"element.onclick"样式附加的事件.它不适用于addEventListener,如果没有定义事件处理程序,它将不会跟随链接.你可以用这样的方法解决这个问题:
var linkEl = $( 'link selector' );
if ( linkEl.attr ( 'onclick' ) === undefined ) {
document.location = linkEl.attr ( 'href' );
} else {
linkEl.click ();
}
Run Code Online (Sandbox Code Playgroud)
但是不知道addEventListener.
fra*_*ies 40
为什么不只是好的'javascript?
$('#element')[0].click()
tan*_*hos 30
只是
$("#your_item").trigger("click");
Run Code Online (Sandbox Code Playgroud)
使用.trigger()可以模拟许多类型的事件,只需将其作为参数传递即可.
试试这个
function submitRequest(buttonId) {
if (document.getElementById(buttonId) == null
|| document.getElementById(buttonId) == undefined) {
return;
}
if (document.getElementById(buttonId).dispatchEvent) {
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
document.getElementById(buttonId).dispatchEvent(e);
} else {
document.getElementById(buttonId).click();
}
}
Run Code Online (Sandbox Code Playgroud)
你可以像使用它一样
submitRequest("target-element-id");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
183624 次 |
| 最近记录: |