2013-01-03 94 views
6

如何使用jQuery在新窗口中打开.pdf文件扩展名的所有链接?我需要改变这样的:用.pdf打开任何链接用jQuery在新窗口中打开?

<a href="domain.com/pdf/parkingmap.pdf">parking map</a> 

在此:

<a href="domain.com/pdf/parkingmap.pdf" target="_blank">parking map</a> 

所有文件都在一个文件夹/pdf是否有帮助。

回答

20

要达到此目的,您可以选择任何a元素,其中href属性以.pdf结尾,并为其添加target="_blank"属性。试试这个:

$(function() { 
    $('a[href$=".pdf"]').prop('target', '_blank'); 
}); 
+0

'.prop()'或'.attr()'? – Sablefoste

+0

是否有你使用'.prop('target','_blank');'而不是'.attr('target','_blank')的理由? – sircapsalot

+0

@SableFoste'.prop()' –

2

的一种方式,假设你要链接pdf结束在同一个页面打开:

$('a').click(
    function(e){ 
     e.preventDefault(); 
     if (this.href.split('.').pop() === 'pdf') { 
      window.open(this.href); 
     } 
     else { 
      window.location = this.href; 
     } 
    }); 
0

jQuery的一行代码:

$('a[href$=".pdf"]').attr('target','_blank'); 

而且in vanilla Javascript:

[].filter.call(document.querySelectorAll('a'), function(a){ 
    return a.href.match('\\.pdf$') ? a.target = '_blank' : 0; 
}); 

或许:

var anchors = document.body.getElementsByTagName('a'); 
for (var i = 0; i < anchors.length; i++) { 
    if(anchors[i].getAttribute('href').match('\\.pdf$') { 
     anchors[i].setAttribute('target', '_blank'); 
    } 
} 

这里试试:http://codepen.io/gabssnake/pen/KyJxp

+0

为什么downvote? – gabssnake