2013-01-03 18 views
6

Come posso avere tutti i collegamenti con l'estensione file .pdf aperta in una nuova finestra usando jQuery? Ho bisogno di cambiare questo:Crea un collegamento con .pdf aperto in una nuova finestra con jQuery?

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

per questo:

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

Tutti i file sono in una cartella /pdf se questo aiuta.

risposta

20

Per ottenere questo è possibile selezionare qualsiasi elemento a che ha una proprietà href che termina con .pdf e aggiungere un attributo target="_blank" ad esso. Prova questo:

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

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

+0

C'è un motivo per cui stai usando '.prop ('target', '_blank');' invece di '.attr ('target', '_blank');'? – sircapsalot

+0

@SableFoste '.prop()' –

2

Un modo, supponendo che si desidera link non termina in pdf per aprire nella stessa pagina:

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

jQuery one-liner:

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

anche in vaniglia Javascript:

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

O forse:

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

Prova qui: http://codepen.io/gabssnake/pen/KyJxp

+0

Perché il downvote? – gabssnake

Problemi correlati