मेरा क्लाइंट एक ऐसी सुविधा चाहता है कि जब हम टैग पर क्लिक करते हैं तो कुछ भी नहीं होता है, लेकिन यह सामान्य रूप से व्यवहार करना चाहिए जब हम उस लिंक पर ctrl + क्लिक करते हैं (नया टैब खोलें) या लिंक पर राइट-क्लिक करें और नया टैब खोलें। क्या ऐसा करना संभव है?

मैं e.preventDetault() कोशिश करता हूं या लिंक में onclick="return false;" जोड़ता हूं लेकिन कुछ भी काम नहीं करता

<a href="http://google.com/"><img src="..."></a>
1
coinhndp 30 मार्च 2020, 06:06

4 जवाब

हो सकता है कि आप एंकर टैग पर लक्षित विशेषता का उपयोग करना चाहें, (इसके लिए आपको जावास्क्रिप्ट की आवश्यकता नहीं है)

<a href="http://google.com/" target="_blank"><img src="..."></a>

लिंक पर क्लिक करने पर यह नया टैब खुल जाएगा।

1
Sreevardhan Reddy 30 मार्च 2020, 06:39
window.onclick = function(event)
{
 if (event.target.nodeName == 'a' && event.which == 1)
 {
  event.preventDefault();
 }
}

आप शाब्दिक रूप से कौन सा बटन चुन सकते हैं, देखें एमडीएन दस्तावेज

0
John 30 मार्च 2020, 06:55

आप केवल एंकर टैग के साथ एक वर्ग जोड़कर ऐसा कर सकते हैं और बाहरी स्क्रिप्ट फ़ाइल का उपयोग कर सकते हैं। कृपया नीचे कोड देखें

एचटीएमएल में

<a href="http://google.com/" target="_blank" id="example"><img src="..."></a>

Script.js . में

let example = document.getElementById('example');
example.addEventListener('click', (e) => {
   e.preventDefault();
})
0
Hasan 30 मार्च 2020, 07:11
मैंने यह किया लेकिन यह काम नहीं करता क्योंकि लिंक में href . है
 – 
coinhndp
30 मार्च 2020, 08:07

यदि आप चाहते हैं कि एंकर टैग के क्लिक में ऐसा हो, तो नीचे एक डेमो है कि आप इसे कैसे कर सकते हैं .. कोड एंकर टैग के डिफ़ॉल्ट पुनर्निर्देशन व्यवहार को रोक देगा और पता लगाएगा कि लिंक पर क्लिक करते समय ctrl दबाया गया था या नहीं।

नीचे jQuery का उपयोग कर एक डेमो है

$(document).ready(function() {
  $('.link').on('click', function($event) {
    $event.preventDefault();
    if ($event.ctrlKey && event.which === 1) {
      console.log('Ctrl + click');
    }
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<a class="link" href="https://stackoverflow.com/questions/60923465/"> Go to Goggle</a>

सादा जावास्क्रिप्ट का उपयोग करके नीचे एक डेमो है

function gotoGoogle(event) {
  event.preventDefault();
  if (event.ctrlKey && event.which === 1) {
    console.log("inside Ctrl+click");
    console.log(window.location.href)
  }
}
<a href="https://stacksnippets.net/" onclick="gotoGoogle(event)">Goto Google</a>

अद्यतन करें:

स्टैकस्निपेट और स्टैक ओवरफ्लो के लिंक का उपयोग करना। सब कुछ उम्मीद के मुताबिक काम करता है। उम्मीद है ये मदद करेगा :)

0
Manish 31 मार्च 2020, 06:28
लेकिन जब मैं उस पर राइट-क्लिक करता हूं और 'नए टैब में ओपन लिंक' चुनता हूं, तो यह काम नहीं करता है
 – 
coinhndp
30 मार्च 2020, 06:17
$(दस्तावेज़)।पर ('क्लिक', ".लिंक", फ़ंक्शन (ई) {e.preventDefault() कंसोल। लॉग ('क्लिक करें:', ई)});
 – 
coinhndp
30 मार्च 2020, 08:14
मैं इस तरह jQuery का उपयोग कैसे कर सकता हूं? मैं कोशिश करता हूं लेकिन यह jQuery के साथ काम नहीं करता है
 – 
coinhndp
30 मार्च 2020, 08:14
सादा जावास्क्रिप्ट और jQuery स्निपेट दोनों के साथ उत्तर अपडेट करें ..
 – 
Manish
30 मार्च 2020, 08:21
ठीक है मुझे समस्या मिली! अगर मैं Google को href पर डालता हूं तो यह पूरी तरह से काम करता है। हालांकि, जब मैं अपनी वेबसाइट (आंतरिक लिंक) के साथ एक ही डोमेन वाला लिंक डालता हूं, तो यह काम नहीं करता है, e.preventDefault() डिफ़ॉल्ट व्यवहार को नहीं रोक सकता है
 – 
coinhndp
30 मार्च 2020, 08:28