2013-01-03 14 views
6

Jak mogę otworzyć wszystkie linki z rozszerzeniem pliku .pdf w nowym oknie za pomocą jQuery? Muszę to zmienić:Czy jakikolwiek link z .pdf otworzyć w nowym oknie z jQuery?

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

na tym:

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

Wszystkie pliki są w folderze /pdf czy to pomaga.

Odpowiedz

20

Aby to osiągnąć można wybrać dowolny a element, który ma href własności kończąc .pdf i dodać atrybut target="_blank" do niego. Spróbuj tego:

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

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

+0

Czy istnieje powód, dla którego używasz '.prop ('target', '_blank');' zamiast '.attr ('target', '_blank');'? – sircapsalot

+0

@SableFoste '.prop()' –

2

Jednym ze sposobów, zakładając chcesz linki nie kończąc pdf otworzyć na tej samej stronie:

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

jQuery jedno-liner:

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

także w wanilii Javascript:

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

Albo:

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'); 
    } 
} 

Wypróbuj go tutaj: http://codepen.io/gabssnake/pen/KyJxp

+0

Dlaczego spadł? – gabssnake