2011-12-20 16 views
5

में परिभाषित या निर्मित "विंडो" ऑब्जेक्ट कहां है, मैं फ़ायरफ़ॉक्स स्रोत कोड पढ़ रहा हूं और मैं जानना चाहता हूं कि कुछ वैश्विक कार्य कैसे बनाएं।फ़ायरफ़ॉक्स स्रोत कोड

मुझे नहीं पता कि विंडो ऑब्जेक्ट कहां बनाया गया है या कुछ वैश्विक ऑब्जेक्ट्स को स्क्रिप्ट द्वारा एक्सेस करने के लिए कैसे परिभाषित किया जाए।

मैं जानना चाहता हूं कि कहां से शुरू करना है या कम से कम जहां विंडो ऑब्जेक्ट को परिभाषित और बनाया गया है, धन्यवाद!

+2

आप फ़ायरफ़ॉक्स स्रोत कोड पढ़ रहे हैं? या जावास्क्रिप्ट स्रोत कोड? – Ibu

+0

फ़ायरफ़ॉक्स स्रोत कोड। जावास्क्रिप्ट इंजन स्रोत कोड पढ़ें, यह वैश्विक वस्तु को स्थापित नहीं करेगा, इसे कहीं भी सेट किया जाना चाहिए। आपकी सहायता के लिए – user1108486

उत्तर

2

window वस्तु ज्यादातर nsGlobalWindow.cpp में परिभाषित किया गया है। सार्वजनिक विधियों/गुण nsIDOMWindow, nsIDOMJSWindow, nsIDOMEventTarget, nsIDOMStorageIndexedDB और कुछ अन्य इंटरफेस से संबंधित हैं (NS_INTERFACE_MAP_ENTRY मैक्रोज़ के लिए देखें, लेकिन उनमें से सभी सार्वजनिक इंटरफेस का संदर्भ नहीं देते हैं)।

इसके अतिरिक्त, किसी भी DOM ऑब्जेक्ट के रूप में इसमें विस्तार गुण (गुण स्क्रिप्ट द्वारा निर्धारित गुण) हो सकते हैं। इन एक्सपो गुणों में से कुछ स्वचालित रूप से सेट हो जाते हैं जब डोम रैपर बनाया जाता है (nsWindowSH कक्षा)। विशेष रूप से, nsIDOMGlobalPropertyInitializer लागू करने वाले घटक उस चरण में गुण सेट कर सकते हैं, या घटक content-document-global-created अधिसूचना सुन सकते हैं।

+0

आपको बहुत बहुत धन्यवाद! यह मेरी समस्या हल हो गया! और उन हाइपर लिंक, आप कैसे दयालु हैं। thx ~ – user1108486

+0

मैंने इस धागे में ठोकर खाई, और अब मैं उत्सुक हूं - जावास्क्रिप्ट मैं अपने '

0

window वैश्विक वस्तु है।

कुछ भी एक क्षेत्र से बाहर परिभाषित window


में रखा जाएगा तो अगर आप (वैश्विक क्षेत्र में) कार्य करें:

var myVar = 123; 

alert(myVar); // alerts 123 
alert(window.myVar); // ALSO alerts 123 
+1

धन्यवाद। लेकिन मेरा मतलब है कि ग्लोबल "विंडो" ऑब्जेक्ट फ़ायरफ़ॉक्स स्रोत कोड में परिभाषित या बनाया गया है। – user1108486

+0

@ user1108486 यह फ़ायरफ़ॉक्स कोड में नहीं होगा। एफएफ एक जावास्क्रिप्ट इंजन का उपयोग कर रहा है। – Neal

+1

हां, लेकिन जावास्क्रिप्ट इंजन का उपयोग करके, किसी को एक वैश्विक वस्तु स्थापित करनी होगी जो "विंडो" ऑब्जेक्ट है। – user1108486

0

मैं वास्तव में गलत समझा है? क्या आप जावास्क्रिप्ट में कुछ लिख रहे हैं?

यदि ऐसा है तो आप वैश्विक दायरे में एक चर घोषित करके विंडो ऑब्जेक्ट में जोड़ सकते हैं।

window.myvar = 123123; 

दरअसल, अगर आप एक closure में अपने कोड लिपटे नहीं किया है तो आप बस कर सकते हैं:

var myvar = "some value"; 
+0

thx, लेकिन मेरा मतलब है कि मोज़िला स्रोत कोड में विंडो कहां सेट है। – user1108486