मेरा क्लाइंट एक ऐसी सुविधा चाहता है कि जब हम टैग पर क्लिक करते हैं तो कुछ भी नहीं होता है, लेकिन यह सामान्य रूप से व्यवहार करना चाहिए जब हम उस लिंक पर ctrl + क्लिक करते हैं (नया टैब खोलें) या लिंक पर राइट-क्लिक करें और नया टैब खोलें। क्या ऐसा करना संभव है?
मैं e.preventDetault()
कोशिश करता हूं या लिंक में onclick="return false;"
जोड़ता हूं लेकिन कुछ भी काम नहीं करता
<a href="http://google.com/"><img src="..."></a>
4 जवाब
हो सकता है कि आप एंकर टैग पर लक्षित विशेषता का उपयोग करना चाहें, (इसके लिए आपको जावास्क्रिप्ट की आवश्यकता नहीं है)
<a href="http://google.com/" target="_blank"><img src="..."></a>
लिंक पर क्लिक करने पर यह नया टैब खुल जाएगा।
window.onclick = function(event)
{
if (event.target.nodeName == 'a' && event.which == 1)
{
event.preventDefault();
}
}
आप शाब्दिक रूप से कौन सा बटन चुन सकते हैं, देखें एमडीएन दस्तावेज।
आप केवल एंकर टैग के साथ एक वर्ग जोड़कर ऐसा कर सकते हैं और बाहरी स्क्रिप्ट फ़ाइल का उपयोग कर सकते हैं। कृपया नीचे कोड देखें
एचटीएमएल में
<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();
})
यदि आप चाहते हैं कि एंकर टैग के क्लिक में ऐसा हो, तो नीचे एक डेमो है कि आप इसे कैसे कर सकते हैं .. कोड एंकर टैग के डिफ़ॉल्ट पुनर्निर्देशन व्यवहार को रोक देगा और पता लगाएगा कि लिंक पर क्लिक करते समय 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>
अद्यतन करें:
स्टैकस्निपेट और स्टैक ओवरफ्लो के लिंक का उपयोग करना। सब कुछ उम्मीद के मुताबिक काम करता है। उम्मीद है ये मदद करेगा :)