2013-01-03 31 views
6

jQuery का उपयोग कर एक नई विंडो में .pdf फ़ाइल एक्सटेंशन के साथ मेरे सभी लिंक कैसे हो सकते हैं? मैं इस को बदलने की जरूरत:jQuery के साथ नई विंडो में .pdf के साथ कोई भी लिंक बनाएं?

<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 (':

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

इसे यहाँ का प्रयास करें? – 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'); 

इसके अलावा वेनिला जावास्क्रिप्ट में:

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

या हो सकता है:) http://codepen.io/gabssnake/pen/KyJxp

+0

डाउनवोट क्यों? – gabssnake