मैं प्रोग्रामेटिक रूप से जावास्क्रिप्ट के साथ लिंक कैसे क्लिक करूं?


173

क्या जावास्क्रिप्ट का उपयोग करके मेरे पेज पर एक लिंक पर क्लिक करने का कोई तरीका है?


6
आप केवल इनपुट प्रकार = "बटन" तत्वों पर 'क्लिक' कर सकते हैं।
बोलेसियान 1

@ बॉलेसियान 1 मैंने .click()एक <a>तत्व पर इस्तेमाल किया और यह काम कर गया।
पॉलमैग

जवाबों:


237
document.getElementById('yourLinkID').click();

18
दरअसल, अब तक यह मेरे द्वारा आजमाए गए सभी ब्राउज़रों में काम करता था, जिनमें IE, Safari, Chrome, Firefox और Opera शामिल हैं।
ऐरिक

5
ध्यान दें कि यदि किसी लिंक में target="_blank"संपत्ति है, तो नई विंडो के लिए ब्राउज़र का पॉपअप ब्लॉकर सक्रिय हो जाएगा।
1919

45

यह फ़ंक्शन कम से कम फ़ायरफ़ॉक्स और इंटरनेट एक्सप्लोरर में काम करता है। यह लिंक से जुड़े किसी भी घटना संचालकों को चलाता है और यदि घटना संचालकों ने डिफ़ॉल्ट कार्रवाई को रद्द नहीं किया है तो लिंक किए गए पृष्ठ को लोड करता है।

function clickLink(link) {
    var cancelled = false;

    if (document.createEvent) {
        var event = document.createEvent("MouseEvents");
        event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
        cancelled = !link.dispatchEvent(event);
    }
    else if (link.fireEvent) {
        cancelled = !link.fireEvent("onclick");
    }

    if (!cancelled) {
        window.location = link.href;
    }
}

5
मैथ्यू सही है, और stackoverflow.com/questions/809057/… क्यों के बारे में कुछ और जानकारी है। क्रॉस ब्राउज़र मजेदार है
डेन एफ

4
यह targetगुण का सम्मान नहीं करता है या<base target="frame">
Vitim.us

38

यदि आप केवल वर्तमान पृष्ठ का पता बदलना चाहते हैं, तो आप इसे जावास्क्रिप्ट में कर सकते हैं:

location.href = "http://www.example.com/test";

53
नीचे इसलिए वोट दिया गया क्योंकि मैं उन उत्तरों को नापसंद करता हूं जो पते के बजाय उपयोग के मामले में उत्तर देते हैं। "मुझे लगता है कि यह आपका इरादा है, और आपकी बाधाओं से अनजान हैं, इसलिए एक वैचारिक रिक्त स्थान में एक वैचारिक क्षेत्र के साथ: इसका उपयोग करें।"
cazlab

11
मैंने मतदान किया, क्योंकि मैं mailto:userjs स्क्रिप्ट में लिंक पर क्लिक करने के कुछ अच्छे समाधान की तलाश कर रहा था । निश्चित रूप से मुझे समय की बचत हुई। मैं बनाने के लिए तैयार किया गया था aतत्व और कुछ "कार्यक्रम संबंधी क्लिक" बनाने stackoverflow.com/questions/809057/...

6
मैंने भी कॉलिंग click()पद्धति को कहीं और प्रस्तावित करने की कोशिश की और यह IE9 में काम नहीं किया, लेकिन सेटिंग location.hrefने वास्तव में mailto:लिंक से ईमेल भेजा । महान समाधान!
अंजीह

यह विधि PyQT4 में सहायक थी। क्लिक () कॉल मेरे लिए काम नहीं कर रहा था। धन्यवाद!
विलेलिप्पोनन

उस प्रश्न में मेरे उपयोग के मामले को संबोधित नहीं करता, जहाँ मैं एक लिंक पर क्लिक करना चाहता हूँ। लिंक कहीं नहीं जाता है, लेकिन अन्य चीजें क्लिक इवेंट से जुड़ी होती हैं। मैं स्थान नहीं बदलना चाहता।
रैंडम एलिफेंट

17

बस इस तरह:

<a id="myLink" onclick="alert('link click');">LINK 1</a>
<a id="myLink2" onclick="document.getElementById('myLink').click()">Click link 1</a>

या पृष्ठ लोड पर:

<body onload="document.getElementById('myLink').click()">
...
<a id="myLink" onclick="alert('link click');">LINK 1</a>
...
</body>

2
हां लेकिन फिर कुछ और क्लिक करना होगा।
लाफुर वेज

2
क्या आप इसे किसी भी घटना पर, पेज लोड की तरह नहीं कर सकते?
छिपकली

2
मदद के लिए धन्यवाद, लेकिन फ़ायरफ़ॉक्स 3 का उपयोग करके im और यह काम नहीं करता है, त्रुटि कंसोल में कहते हैं त्रुटि: document.getElementById ("myLink")। क्लिक करें एक फ़ंक्शन नहीं है

ऐसा लगता है कि फ़ायरफ़ॉक्स क्लिक विधि का समर्थन नहीं करता है। और अधिकांश जवाब, मेरा सहित, उपयोगी नहीं हैं :)
कैनवर

@ कन्नवर: क्लिक के बजाय क्लिक करने की कोशिश करें
स्टीफन स्टीगर

9

लिंक पर क्लिक करने का jQuery तरीका है

$('#LinkID').click();

MailTo लिंक के लिए, आपको निम्नलिखित कोड लिखना होगा

$('#LinkID')[0].click();

2
यह काम नहीं करता है। यह उस सवाल का जवाब नहीं है जो उसने पूछा है। अगर मैंने कुछ और अंक लिए होते तो मैं इसके लिए नकारात्मक देता।

2
यह काम नहीं करता है? क्या आपने इसकी कोशिश की है? मुझे उम्मीद है कि आप समझ गए होंगे कि "LinkID" का क्या मतलब है। मैं वास्तव में आश्चर्यचकित रहूँगा यदि कोई व्यक्ति अब jQuery के बिना js के लिए काफी पिछड़ा हुआ है। वैसे भी, कुछ बिंदु हासिल करने के बाद बेझिझक
मुहम्मद वकास इकबाल

3
मैंने यह कोशिश की और mailTo लिंक रिएक्ट नेटिव में काम नहीं करता है। इसका उपयोग करें: window.location.href = "mailto: address@gmail.com";
फंगसुन्थ्रैक्स

4
यह मेरे लिए एक aलिंक पर क्लिक करने के लिए भी काम नहीं किया । [0].click()संस्करण का उपयोग करना , जो मुझे लगता है कि document.getElementById('yourLinkID').click();उत्तर के समान है ।
एमएम

फ़ायरफ़ॉक्स ब्राउज़र: यह <इनपुट> के लिए काम करता है, लेकिन एक <a>
jimver04

2

मेरे लिए, मैं इसे इस तरह से काम करने में कामयाब रहा। मैंने 5000 मिलीसेकंड में स्वचालित क्लिक को तैनात किया और फिर 1000 मिलीसेकंड के बाद लूप बंद कर दिया। तब केवल 1 स्वचालित क्लिक था।

<script> var myVar = setInterval(function ({document.getElementById("test").click();}, 500); setInterval(function () {clearInterval(myVar)}, 1000); </script>

2

उपर्युक्त विधियों में से कई को हटा दिया गया है। अब यहां पाए जाने वाले कंस्ट्रक्टर का उपयोग करने की सिफारिश की गई है

function clickAnchorTag() {
    var event = document.createEvent('MouseEvent');
    event = new CustomEvent('click');
    var a = document.getElementById('nameOfID');
    a.dispatchEvent(event);
}

इसके कारण एंकर टैग पर क्लिक किया जाएगा, लेकिन यह प्रदर्शित नहीं करेगा कि यदि पॉप-अप ब्लॉकर्स सक्रिय हैं, तो उपयोगकर्ता को पॉप-अप की अनुमति देने की आवश्यकता होगी।


3
मुझे समझ में नहीं आ रहा है कि घटना दो बार क्यों सेट की जा रही है। मैं नहीं देखता कि कैसे घटना = नया CustomEvent ('क्लिक'); संदर्भ घटना, तो क्या वर की बात ... है
historystamp

मुझे लगता है कि आप हिस्ट्रीस्टैंप सही हैं। वह एक माउसइवेंट बना रहा है और फिर तुरंत एक नई घटना के साथ इसे ओवरराइट कर देता है।
जॉन लॉर्ड

1

क्लिक करने के बजाय, क्या आप URL पर क्लिक कर सकते हैं कि क्लिक जावास्क्रिप्ट का उपयोग करने के लिए जाएगा?

हो सकता है कि आप अपनी इच्छानुसार शरीर पर कुछ भी डाल सकते हैं।


मैंने दोनों प्रश्नों पर पोस्ट किया क्योंकि लोग स्वाभाविक रूप से बटन जानकारी को देखने नहीं जा रहे हैं जब वे "टैग" लिंक के साथ काम कर रहे हैं। वे तकनीकी रूप से असंबंधित हैं।
स्कॉट टोवी

1

आप उन्हें दूसरे पृष्ठ पर पुनर्निर्देशित कर सकते हैं। वास्तव में इसे बनाने के लिए एक लिंक पर क्लिक करें और यह यात्रा करने के लिए एक साथ लगता है, लेकिन मुझे पूरी कहानी नहीं पता है।


2
मेरे मामले में, मुझे नहीं पता कि लिंक में "_blank" लक्ष्य है, इसलिए मुझे नहीं पता कि मुझे स्थान का उपयोग करना चाहिए। Chrome या window.open। यह एक क्लिक भेजने के लिए कम है। उपयोग के मामले हैं, उदाहरण के लिए आप एक घटना को आग लगाना चाह सकते हैं जैसे कि एक मोडलबॉक्स खोलना।
dxvargas

-2

आप उपयोगकर्ता के माउस को कुछ भी नहीं कर सकते। लेकिन जब कोई घटना ट्रिगर होती है तो आपका पूरा नियंत्रण होता है।

आप जो कर सकते हैं, वह बॉडी लोड पर क्लिक करना है। W3Schools का यहाँ एक उदाहरण है।


6
@ इससे पहले कि यह किसी भी तरह 404'd मिल गया था एक बुरा लिंक था। कोई नुकसान नहीं।
जॉन ड्वोरक

-2

क्लाइंट साइड जेएस फ़ंक्शन स्वचालित रूप से एक लिंक पर क्लिक करें जब ...

यहां एक उदाहरण है जहां आप एक छिपे हुए फॉर्म इनपुट के मूल्य की जांच करते हैं, जो सर्वर से पास की गई एक त्रुटि रखता है। आपका क्लाइंट पक्ष JS इसके मान की जांच करता है और आपके द्वारा निर्दिष्ट किसी अन्य स्थान पर एक त्रुटि उत्पन्न करता है। पॉप-अप लॉगिन मोडल के मामले में।

var signUperror = document.getElementById('handleError')

if (signUperror) {
  if(signUperror.innerHTML != ""){
  var clicker = function(){
    document.getElementById('signup').click()
  }
  clicker()
  }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.