2013-01-03 117 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