3

我们有旧页面,其中包含target="_blank". 单击这些我想忽略它并运行一些用于打开窗口的 JavaScript。

jQuery 可以做到这一点,如果可以,我应该研究哪些方法/术语?

提前致谢

4

4 回答 4

8

只需使用事件委托来防止与 target="_blank" 的链接工作,例如:

$(document).on('click', 'a[target="_blank"]', function(event) {
    event.preventDefault();
    alert('Prevented');
});
于 2013-02-07T11:34:26.040 回答
4
$('a[target=_blank]').click(function(e){
    e.preventDefault();
    //do what you want here
});

演示:http: //jsfiddle.net/kkhNr/1/

于 2013-02-07T11:33:08.563 回答
3

试试这个

   $('a[target=_blank]').click(function(event) {
        event.preventDefault();            
        // Now make a call to your own function
    });
于 2013-02-07T11:32:42.550 回答
0

我只是想指出@Roger C 的监听器是一个更好的解决方案……如果您的页面上有任何动态加载的内容(即AJAX 或AngularJS 单页应用程序)。

此侦听器侦听文档的点击,并将拾取新添加的内容,而无需在内容更改后重新添加侦听器:

$(document).on('click', 'a[target="_blank"]', function(event) {
    event.preventDefault();
    alert('Prevented');
});

此侦听器侦听在调用它时找到的所有选择器(可能缺少任何新添加的内容):

$('a[target=_blank]').click(function(e){
    e.preventDefault();
    alert('Prevented');
});
于 2021-09-27T15:05:48.230 回答