जावास्क्रिप्ट में यूआरएल पर जाने के लिए एक ऑनक्लिक फ़ंक्शन जोड़ना?


100

मैं इस फैंसी छोटे जावास्क्रिप्ट का उपयोग कर रहा हूं ताकि एक क्षेत्र को उजागर किया जा सके क्योंकि उपयोगकर्ता इसके ऊपर मंडराता है। क्या आप मुझे बता सकते हैं कि क्या कोई onclickफ़ंक्शन जोड़ने का एक तरीका है जो एक लिंक के रूप में कार्य करेगा और एक URL पर जाएगा?

<script>
         $(function() {
            $('tr').hover(function() {
                $(this).css('background-color', '#eee');
                $(this).contents('td').css({'border': '0px solid red', 'border-left': 'none', 'border-right': 'none'});
                $(this).contents('td:first').css('border-left', '0px solid red');
                $(this).contents('td:last').css('border-right', '0px solid red');
            },
            function() {
                $(this).css('background-color', '#FFFFFF');
                $(this).contents('td').css('border', 'none');
                $('a#read_message.php').click(function(){ URL(); });
            });
        });
        </script>

मुझे url का मूल्य कैसे मिलता है, क्या यह तालिका कोशिकाओं में से एक में एक कड़ी है या क्या वे सभी एक ही यूआरएल पर जाते हैं
रेनॉन स्टीवर्ट

2
आपके पास एक अजीब सी आईडी है '# read_message.php'?
एलेक्स गिल

जवाबों:


168

प्रयत्न

 window.location = url;

इसका भी प्रयोग करें

 window.open(url);

यदि आप एक नई विंडो में खोलना चाहते हैं।


129

बस इस का उपयोग करें

onclick="location.href='pageurl.html';"

9
यह उसी विंडो के भीतर लिंक को खोलता है, जबकि स्वीकृत उत्तर एक नई विंडो में खुलता है। मैं इस उत्तर के दृष्टिकोण को पसंद करता हूं
हम्मन सैमुअल

33

एक उपयोगकर्ता को किसी भिन्न URL पर भेजने के लिए आप इसे इस तरह से कर सकते हैं:

$("a#thing_to_click").on('click', function(){
     window.location = "http://www.google.com/";    
});

यह तरीका बहुत काम करेगा लेकिन ऊपर इन दिनों इसे करने का नया और सही तरीका है

$("a#thing_to_click").click(function(e){
         e.preventDefault();
         window.location = "http://www.google.com/";    
});


8

एचटीएमएल

<input type="button" value="My Button" 
onclick="location.href = 'https://myurl'" />

MVC

<input type="button" value="My Button" 
onclick="location.href='@Url.Action("MyAction", "MyController", new { id = 1 })'" />

6

यदि आप एक नए टैब में लिंक खोलना चाहते हैं, तो आप कर सकते हैं:

$("a#thing_to_click").on('click',function(){
    window.open('https://yoururl.com', '_blank');
});

3

उस स्थिति में जब आप <a>टैग के साथ काम कर रहे हों , और आप उस डिफ़ॉल्ट पर hrefजाना बाधित करना चाहते हैं जिसका आपको उपयोग करना चाहिएthis

डिफ़ॉल्ट url (याहू) पर जाएं:

<a href="https://yahoo.com" onclick="location.href='https://google.com';"> 

नए url (Google) पर जाएं onclick:

<a href="https://yahoo.com" onclick="this.href='https://google.com';">

का उपयोग करके thisआप वर्तमान ब्राउज़र onclickइवेंट को बाधित कर रहे हैं और hrefडिफ़ॉल्ट व्यवहार को जारी रखने से पहले बदल रहे हैं<a href='...


Hi @Darvydas, उपरोक्त कोड उम्मीद के मुताबिक काम कर रहा है लेकिन नए लोड किए गए url पर किसी अन्य घटना को करने के लिए पेज लोड होने तक कैसे प्रतीक्षा करें?
फ़याज़मद

@FayazMd सुनिश्चित नहीं हैं कि आप क्या करने की कोशिश कर रहे हैं? आमतौर पर अगर यह aएक वेब पेज के रूप में डोम के अंदर जावास्क्रिप्ट (वर्तमान में डोम के तत्व के रूप में) है तो आप अगले पृष्ठ पर जेएस व्यवहार को नियंत्रित नहीं कर सकते हैं (जहां आप ब्राउज़र पृष्ठ को पुनः निर्देशित कर रहे हैं)। जब उपयोगकर्ता उस पृष्ठ को छोड़ देता है जो यह किया जाता है। जब तक आप दूसरे पेज को भी नियंत्रित नहीं करते हैं, और प्रत्येक उपयोगकर्ता के लिए पेज लोड के लिए सुन सकते हैं और document.referrerयह जानने के लिए जांचें कि क्या यह सही व्यक्ति है। इसके अलावा, यह एक और कहानी हो सकती है यदि आप उस ब्राउज़र के लिए एक्सटेंशन / ऐड-ऑन जैसी किसी चीज़ का उपयोग कर रहे हैं जो पेज URL परिवर्तनों को सुन सकता है।
दारवदास k जिल्कस

हाय @Darvydas, आपके उत्तर के लिए धन्यवाद। मैं निम्नलिखित के रूप में एक कोशिश देना चाहता हूं। ब्राउज़र कंसोल में, आत्म निष्पादन फ़ंक्शन के साथ जावास्क्रिप्ट का उपयोग करना 1 हो सकता है) मैं अपनी वेबसाइटों में से एक को लोड करना चाहता हूं url और 2) तब तक इंतजार करना चाहता हूं जब तक कि यह पूरी तरह से 3 लोड न हो जाए), ताकि, उस वेब पेज पर एक तालिका हो, जिसमें से मुझे चाहिए सभी पंक्तियों को निकालें। मैं चरण 1 प्रदर्शन करने में सक्षम हूं और अगर मैं पहले से लोड की गई वेबसाइट पर हूं तो कंसोल में मैं टेबल पंक्तियां (जावास्क्रिप्ट स्क्रिप्ट में) निकालने में सक्षम हूं। लेकिन, जब मैं उपरोक्त चरणों के लिए अनुक्रमिक रूप से कोड लिखने की कोशिश कर रहा हूं, तो चरण 2 पर विफल रहा है
FayazMd

2

पूरी तरह से निश्चित नहीं कि मैं प्रश्न को समझूं, लेकिन क्या आपका मतलब कुछ इस तरह है?

$('#something').click(function() { 
    document.location = 'http://somewhere.com/';
} );

हां, मूल रूप से जावास्क्रिप्ट को टेबल फ़ील्ड को हाइलाइट करने के लिए सेट किया जाता है क्योंकि उपयोगकर्ता तालिका सामग्री / जानकारी पर स्क्रॉल / होवर करता है। मैं यह बताना चाहता हूं कि हाइलाइट किया गया फ़ील्ड क्लिक करने योग्य है, इसलिए वे एक पृष्ठ से जुड़े हुए हैं। अगर वह किसी भी अधिक समझ में आता है। खेद है अगर यह नहीं है।
जॉन टेलर

उसे हल कर लिया। सिर्फ # i का उपयोग करने के बजाय थोड़ा उर कोड को अनुकूलित किया ताकि तालिका का प्रतिनिधित्व किया जा सके और यह काम कर सके। धन्यवाद
जॉन टेलर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.