2011-05-17 3 views
5

में setTimeout के साथ क्लिक करें अनुकरण करें मैं setTimeout के साथ एक क्लिक ईवेंट का अनुकरण कैसे करूं? कुछ की तरह:जावास्क्रिप्ट

<script> 
    window.onload=setTimeout(document.getElementById('mk1').click(),1000); 
</script> 

<a id="mk1" href="some url">click me</a> 
+1

यदि आप वास्तव में एक क्लिक अनुकरण करना चाहते हैं, तो कैसाब्लांका का सही उत्तर है। यदि आप पृष्ठ को किसी भिन्न यूआरएल पर रीडायरेक्ट करना चाहते हैं, तो विंडो.लोकेशन –

उत्तर

12

वर्तमान में अपने कोड click() तुरंत कॉल और setTimeout को वापसी मान से गुजरता है। इसके बजाय आप setTimeout करने के लिए एक समारोह संदर्भ पास करना चाहते हैं:

window.onload = function() { 
    setTimeout(function() { 
    document.getElementById('mk1').click(); 
    }, 1000); 
}; 

संपादित करें: @ThiefMaster बताते रूप में, आप भी onload करने के लिए एक समारोह पास करना चाहते हैं; भले ही यह अन्यथा काम करता प्रतीत होता है, यह ऐसा नहीं करेगा जो वास्तव में करना चाहिए।

+2

पर एक मान असाइन करें, आपको अपनी कॉल को अज्ञात फ़ंक्शन में लपेटने की आवश्यकता है। अभी आप setTimeout ** वापसी मान ** को 'window.onload' – ThiefMaster

+0

@ थिफ़मास्टर: धन्यवाद, मैंने पूरी तरह से कोड के उस हिस्से को अनदेखा कर दिया है। :) – casablanca

+0

"अन्यथा काम करने लगते हैं": हाँ, लेकिन यह ऑनलोड निष्पादित नहीं करता है लेकिन तुरंत उस मामले में - और यह एक पूर्णांक को कॉल करने का प्रयास करेगा जब ऑनलोड आग – ThiefMaster

1

document.getElementById('mk1').click() स्क्रिप्ट पहली बार चलने पर मूल्यांकन कर रहा है। आपको इसे एक फ़ंक्शन में बनाना होगा और इसे पहले पैरामीटर के रूप में पास करना होगा।

संबंधित मुद्दे