2009-11-11 12 views
7

जब मैं एक GreaseMonkey स्क्रिप्ट लिखने, अगर मैं एक div बनाने onclick और यह सचेत करने के लिए onclick सेट काम करता है:GreaseMonkey बाध्यकारी

var btn = document.createElement('div'); btn.setAttribute('onclick',"alert('clicked!');");

हालांकि, अगर मैं यह पूछना कुछ और है कि पहले तो परिभाषित किया गया था करने के लिए यह विफल रहता है:

function graphIt() {...}; var btn = document.createElement('div'); btn.setAttribute('onclick',"graphIt();");

वहाँ किसी भी तरह से मैं एक div की onclick घटना के लिए एक समारोह के लिए बाध्य कर सकता है?

+0

पुनश्च:

आप addEventListener विधि, इस तरह फोन करना चाहिए। जिस फ़ंक्शन को मैं कॉल करना चाहता हूं, कुछ अन्य कार्यों को भी कॉल करता है। – KalEl

उत्तर

10

आपकी समस्या यह है कि चूंकि आप स्ट्रिंग में विशेषता सेट कर रहे हैं, इसलिए यह पेज के संदर्भ में स्ट्रिंग का मूल्यांकन कर रहा है, जिसमें graphIt फ़ंक्शन नहीं है।

function graphIt() {...}; var btn = document.createElement('div'); 
btn.addEventListener("click", graphIt, false); 
+0

सही समाधान। – kitokid

+0

क्या यह अभी भी काम करता है? मैंने कोशिश की है और पेज लोड होने पर बटन स्वचालित रूप से क्लिक हो जाता है ... – geekscrap

+0

@geekscrap: आप शायद इसे पास करने के बजाय फ़ंक्शन को बुलाते हैं। – SLaks

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