2011-03-23 13 views
5

console.dir(window) क्रोम में:console.dir (विंडो)?

http://ecmazing.com/unsorted/console-dir-window-in-chrome.png

console.dir(window) Firebug में (Firefox 7 में):

http://ecmazing.com/unsorted/console-dir-window-in-firebug.png

क्यों Firebug सूची केवल window ऑब्जेक्ट के गुणों की एक जोड़ी करता है? मैं फ़ायरफ़ॉक्स में सभी वैश्विक गुणों को कैसे सूचीबद्ध कर सकता हूं?

इसके अलावा, __proto__ संपत्ति कहां है ताकि मैं प्रोटोटाइप श्रृंखला का पालन कर सकूं?

+0

मैं क्रोम में अपने मुख्य जेएस विकास और डिबगिंग टूल के रूप में स्थानांतरित करने जा रहा हूं। क्योंकि मुझे इसका कोई जवाब नहीं मिला। – user907860

उत्तर

0

फ़ायरफ़ॉक्स में, आप console.log(window); के साथ विंडो गुणों का पूरा सेट प्राप्त कर सकते हैं लेकिन यह अनिवार्य रूप से उस ऑब्जेक्ट के लिए DOM टैब पर इंगित करेगा, जो आपको ऑब्जेक्ट के वर्तमान गुण दिखाता है।

console.dir(window); का उपयोग करके आप ऑब्जेक्ट के गुणों का एक स्नैप-शॉट देता है जिस पर आपने अनुरोध किया था। यदि आप देखते हैं कि आप अपने फ़ायरफ़ॉक्स console.dir(window); में "विंडो" के अंतिम उदाहरण पर क्लिक कर सकते हैं तो फ़ंक्शन कॉल के समय विंडो ऑब्जेक्ट से जुड़ी गुणों को देखने के लिए परिणाम।

+0

वह फ़ायरबग के डॉम टैब से लिंक होगा।लेकिन यह अभी भी केवल 40-50 गुणों की सूची है। बाकी कहाँ है? ईसीएमएस्क्रिप्ट वैश्विक गुण गायब हैं। इसके अलावा, सभी विधियां गायब हैं। –

+0

हम्म हाँ, आप सही हैं, मैं फ़ायरफ़ॉक्स ऑब्जेक्ट प्रिंट आउट में "window.Date" ढूंढने की कोशिश कर रहा हूं, लेकिन नहीं कर सकता ... हालांकि आप क्रोम प्रिंट आउट में इसे स्पष्ट रूप से देख सकते हैं। – potench

2

ऐसा लगता है कि फायरबग उन गुणों को फ़िल्टर कर रहा है जो hasOwnProperty को संतुष्ट नहीं करते हैं। उदाहरण के लिए, फ़ायरफ़ॉक्स 4/फ़ायरबग 1.7, navigator और addHandler का उपयोग करके डोम का निवेश करते समय दिखाएं, लेकिन confirm नहीं है। का निरीक्षण करें:

>>> window.hasOwnProperty('confirm') 
false 
>>> window.hasOwnProperty('addHandler') 
true 
>>> window.hasOwnProperty('navigator') 
true 

हालांकि, Date दिखाई नहीं देता है, और:

>>> window.hasOwnProperty('Date') 
true 

तो यह भी वैश्विक निर्माताओं, जो this bug पर comment 9 से इसकी पुष्टि होने लगता है को छान जा रहा है। मुझे नहीं पता कि इन रचनाकारों को फ़िल्टर करने के लिए किस फ़ंक्शन का उपयोग किया जाता है।

किसी भी तरह से, मुझे इसके आसपास काम करने का कोई तरीका नहीं मिला है। अगर मैं करता हूं, तो मैं आपको बता दूंगा, लेकिन मुझे लगता है कि लेखन के समय आप जो चाहते हैं उसे करने का कोई तरीका नहीं है।

+0

तो मूल रूप से, यह बेकार है। क्रोम का 'console.dir (विंडो)' असली सौदा है - यह सबकुछ सूचीबद्ध करता है (कई सौ गुण) और आपको 'ऑब्जेक्ट.प्रोटोटाइप' तक प्रोटोटाइप श्रृंखला का पालन करने देता है। –

+0

'एडहैंडलर' क्या है? यह एक वैश्विक संपत्ति afaik नहीं है। –

+0

@ ime हां, दुर्भाग्यवश दुर्भाग्य से एक निष्कर्ष निकालने की तरह लगता है। आश्चर्यजनक रूप से पर्याप्त है, मुझे मोज़िला के उत्कृष्ट जावास्क्रिप्ट दस्तावेज़ों में भी 'एडहैंडलर' पर कोई जानकारी नहीं मिल रही है। ऐसा लगता है कि यह उस पृष्ठ के लिए कुछ विशिष्ट हो सकता है - जब मैं कंसोल के माध्यम से मैन्युअल रूप से 'window.addHandler' जोड़ता हूं तो यह डोम टैब में दिखाई देता है। यह सब बहुत विरोधाभासी प्रतीत होता है, शायद आपको फायरबग के साथ एक बग रिपोर्ट दर्ज करने पर विचार करना चाहिए, मुझे यकीन है कि वे अधिक विस्तार से जवाब दे सकते हैं। – Aistina

1

विकल्पों के विशाल बहुमत नहीं देने के लिए/डिफ़ॉल्ट रूप से अक्षम प्रतीत ..

पत्र डोम टैब पर डोम के दाईं ओर फ़ायरबग 1.9.0b1 (और 1.8 im की (यह चयन किया जाता है, जबकि) यकीन है ..), एक नीचे तीर है।

उस पर क्लिक करके और शीर्ष अनुभाग में सभी विकल्पों का चयन (आईई। "केवल" केवल अपनी संपत्ति दिखाएं "और" केवल संख्यात्मक गुण दिखाएं "के अलावा) हमें कुछ अन्य छिपी हुई संपत्तियों को देखने की अनुमति दी गई है।

मुझे यकीन है कि डिफ़ॉल्ट व्यवहार सभी गुणों को दिखाने के लिए उपयोग किया जाता है, और मुझे यकीन नहीं है कि उन्होंने इसे कब बदल दिया है, लेकिन जब तक हमें उन विकल्पों को नहीं मिला तब तक यह बहुत निराशाजनक था।

उम्मीद है कि यह किसी और को जो भी मैंने अभी किया है, उसे जानने में मदद करता है, यह पता लगाने की कोशिश कर रहा है कि आप फायरबग के डीओएम पैनल से बिल्कुल उपयोगी जानकारी क्यों प्राप्त कर सकते हैं।