Google Chrome कंसोल में सभी जावास्क्रिप्ट चर की सूची देखें


236

Firebug में, DOM टैब आपके सभी सार्वजनिक चर और वस्तुओं की एक सूची दिखाता है। क्रोम के कंसोल में आपको सार्वजनिक चर या ऑब्जेक्ट का नाम लिखना होगा जिसे आप एक्सप्लोर करना चाहते हैं।

क्या कोई रास्ता है - या कम से कम एक कमांड - क्रोम के कंसोल के लिए सभी सार्वजनिक चर और वस्तुओं की सूची प्रदर्शित करने के लिए? यह बहुत टाइपिंग को बचाएगा।

जवाबों:


330

क्या इस तरह का आउटपुट आपको मिल रहा है?

for(var b in window) { 
  if(window.hasOwnProperty(b)) console.log(b); 
}

यह windowऑब्जेक्ट पर उपलब्ध सभी चीजों (सभी कार्यों और चर, उदाहरण के लिए, $और jQueryइस पृष्ठ पर, आदि) को सूचीबद्ध करेगा । हालांकि, यह काफी एक सूची है; सुनिश्चित नहीं है कि यह कितना उपयोगी है ...

नहीं तो बस करो windowऔर उसके पेड़ के नीचे जाना शुरू करो:

window

यह आपको DOMWindowएक विस्तार योग्य / अन्वेषण योग्य वस्तु देगा।


4
@ntownsend -मेरा कंसोल आपके साथ असहमत है :) यहobject किसकी संपत्ति है , यह क्यों नहीं होगा?
निक Craver

9
"यह क्यों नहीं होगा?" [[Prototype]]वैश्विक वस्तु की आंतरिक संपत्ति कार्यान्वयन पर निर्भर है , लगभग सभी प्रमुख कार्यान्वयनों -V8, स्पाइडरमोंकि, राइनो, आदि में, वैश्विक वस्तु किसी न किसी बिंदु से विरासत में मिली है Object.prototype, लेकिन उदाहरण के लिए अन्य कार्यान्वयन में -JScript, BESEN, DMDScript, आदि। ..- यह नहीं है, इसलिए window.hasOwnPropertyइसका अस्तित्व नहीं है, इसे परखने के लिए हम कर सकते हैं:Object.prototype.isPrototypeOf(window);
CMS

10
@ सीएमएस - हां यह सच है ... लेकिन सवाल विशेष रूप से क्रोम के बारे में है, इसलिए कार्यान्वयन ज्ञात है।
निक Craver

6
या आप इसे टाइप कर सकते हैं;
एडी बी

2
मैं वैरिएबल के मूल्य को देखना चाहता था, इसलिए मैंने इसका इस्तेमाल किया:for(var b in window) { if(window.hasOwnProperty(b)) console.log(b+" = "+window[b]); }
उत्तरी-ब्रैडली

75

जब स्क्रिप्ट निष्पादन रोक दिया जाता है (उदाहरण के लिए, ब्रेकपॉइंट पर) तो आप डेवलपर टूल टूल के दाहिने फलक में सभी ग्लोबल्स देख सकते हैं:

क्रोम वैश्विक


2
क्या मैं ब्रेक के बिना, ब्रेक प्वाइंट शो की तरह निष्पादन के संदर्भ से भिन्नता को थूक सकता हूं?
हल्के फज

1
@ मिल्डफज फिर निक क्रैवर के समाधान (स्वीकृत एक) का उपयोग करें।
मार्सेल कोर्पल

61

कंसोल खोलें और फिर दर्ज करें:

  • keys(window) चर देखने के लिए
  • dir(window) वस्तुओं को देखने के लिए

dir(Function("return this")())यह वेब वर्कर्स में भी काम करता है
Janus Troelsen

2
FYI करें dir(window)फ़ायरफ़ॉक्स में काम नहीं करता है (हाँ मुझे पता है कि यह धागा क्रोम के बारे में था), लेकिन key(window)फ़ायरफ़ॉक्स में काम करता है
क्रेग लंदन

38

windowताकि आप कंसोल में यह टाइप कर सकते हैं और उसके बाद सभी चर / गुण / कार्य देखने पर विस्तार वस्तु, सभी सार्वजनिक चर होते हैं।

क्रोम शो-सभी चर-विस्तार खिड़की-वस्तु


4
अच्छा! दूर से सबसे आसान तरीका के बाद से आप चर का विस्तार कर सकते हैं।
क्वाटर्त्जेगी

31

यदि आप विंडो ऑब्जेक्ट के सभी मानक गुणों को बाहर करना चाहते हैं और एप्लिकेशन-विशिष्ट ग्लोबल्स को देखते हैं, तो यह उन्हें Chrome में प्रिंट करेगा:

(function(){var standardGlobals=["top","window","location","external","chrome","document","inlineCSS","target","width","height","canvas","data","DOMURL","img","svg","ctx","url","w","a","speechSynthesis","webkitNotifications","localStorage","sessionStorage","applicationCache","webkitStorageInfo","indexedDB","webkitIndexedDB","crypto","CSS","performance","console","devicePixelRatio","styleMedia","parent","opener","frames","self","defaultstatus","defaultStatus","status","name","length","closed","pageYOffset","pageXOffset","scrollY","scrollX","screenTop","screenLeft","screenY","screenX","innerWidth","innerHeight","outerWidth","outerHeight","offscreenBuffering","frameElement","clientInformation","navigator","toolbar","statusbar","scrollbars","personalbar","menubar","locationbar","history","screen","postMessage","close","blur","focus","ondeviceorientation","ondevicemotion","onunload","onstorage","onresize","onpopstate","onpageshow","onpagehide","ononline","onoffline","onmessage","onhashchange","onbeforeunload","onwaiting","onvolumechange","ontimeupdate","onsuspend","onsubmit","onstalled","onshow","onselect","onseeking","onseeked","onscroll","onreset","onratechange","onprogress","onplaying","onplay","onpause","onmousewheel","onmouseup","onmouseover","onmouseout","onmousemove","onmouseleave","onmouseenter","onmousedown","onloadstart","onloadedmetadata","onloadeddata","onload","onkeyup","onkeypress","onkeydown","oninvalid","oninput","onfocus","onerror","onended","onemptied","ondurationchange","ondrop","ondragstart","ondragover","ondragleave","ondragenter","ondragend","ondrag","ondblclick","oncuechange","oncontextmenu","onclose","onclick","onchange","oncanplaythrough","oncanplay","oncancel","onblur","onabort","onwheel","onwebkittransitionend","onwebkitanimationstart","onwebkitanimationiteration","onwebkitanimationend","ontransitionend","onsearch","getSelection","print","stop","open","showModalDialog","alert","confirm","prompt","find","scrollBy","scrollTo","scroll","moveBy","moveTo","resizeBy","resizeTo","matchMedia","requestAnimationFrame","cancelAnimationFrame","webkitRequestAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","captureEvents","releaseEvents","atob","btoa","setTimeout","clearTimeout","setInterval","clearInterval","TEMPORARY","PERSISTENT","getComputedStyle","getMatchedCSSRules","webkitConvertPointFromPageToNode","webkitConvertPointFromNodeToPage","webkitRequestFileSystem","webkitResolveLocalFileSystemURL","openDatabase","addEventListener","removeEventListener","dispatchEvent"];
    var appSpecificGlobals={};
    for (var w in window){
        if (standardGlobals.indexOf(w)==-1) appSpecificGlobals[w]=window[w];
    }
    console.log(appSpecificGlobals);})()

स्क्रिप्ट एक बुकमार्क के रूप में अच्छी तरह से काम करती है। स्क्रिप्ट को बुकमार्कलेट के रूप में उपयोग करने के लिए, एक नया बुकमार्क बनाएं और URL को निम्नलिखित के साथ बदलें:

javascript:(function(){var standardGlobals=["top","window","location","external","chrome","document","inlineCSS","target","width","height","canvas","data","DOMURL","img","svg","ctx","url","w","a","speechSynthesis","webkitNotifications","localStorage","sessionStorage","applicationCache","webkitStorageInfo","indexedDB","webkitIndexedDB","crypto","CSS","performance","console","devicePixelRatio","styleMedia","parent","opener","frames","self","defaultstatus","defaultStatus","status","name","length","closed","pageYOffset","pageXOffset","scrollY","scrollX","screenTop","screenLeft","screenY","screenX","innerWidth","innerHeight","outerWidth","outerHeight","offscreenBuffering","frameElement","clientInformation","navigator","toolbar","statusbar","scrollbars","personalbar","menubar","locationbar","history","screen","postMessage","close","blur","focus","ondeviceorientation","ondevicemotion","onunload","onstorage","onresize","onpopstate","onpageshow","onpagehide","ononline","onoffline","onmessage","onhashchange","onbeforeunload","onwaiting","onvolumechange","ontimeupdate","onsuspend","onsubmit","onstalled","onshow","onselect","onseeking","onseeked","onscroll","onreset","onratechange","onprogress","onplaying","onplay","onpause","onmousewheel","onmouseup","onmouseover","onmouseout","onmousemove","onmouseleave","onmouseenter","onmousedown","onloadstart","onloadedmetadata","onloadeddata","onload","onkeyup","onkeypress","onkeydown","oninvalid","oninput","onfocus","onerror","onended","onemptied","ondurationchange","ondrop","ondragstart","ondragover","ondragleave","ondragenter","ondragend","ondrag","ondblclick","oncuechange","oncontextmenu","onclose","onclick","onchange","oncanplaythrough","oncanplay","oncancel","onblur","onabort","onwheel","onwebkittransitionend","onwebkitanimationstart","onwebkitanimationiteration","onwebkitanimationend","ontransitionend","onsearch","getSelection","print","stop","open","showModalDialog","alert","confirm","prompt","find","scrollBy","scrollTo","scroll","moveBy","moveTo","resizeBy","resizeTo","matchMedia","requestAnimationFrame","cancelAnimationFrame","webkitRequestAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","captureEvents","releaseEvents","atob","btoa","setTimeout","clearTimeout","setInterval","clearInterval","TEMPORARY","PERSISTENT","getComputedStyle","getMatchedCSSRules","webkitConvertPointFromPageToNode","webkitConvertPointFromNodeToPage","webkitRequestFileSystem","webkitResolveLocalFileSystemURL","openDatabase","addEventListener","removeEventListener","dispatchEvent"]; var $appSpecificGlobals={};for (var w in window){if (standardGlobals.indexOf(w)==-1) $appSpecificGlobals[w]=window[w];} window.$appSpecificGlobals=$appSpecificGlobals;console.log(window.$appSpecificGlobals);})()

2
यह वर्तमान क्रोम और फ़ायरफ़ॉक्स डिफ़ॉल्ट
ग्लोबल्स

9

डेविड वाल्श के पास इसके लिए एक अच्छा उपाय है। यहाँ इस पर मेरा विचार है, जो इस धागे पर भी खोजा गया है, उसके समाधान के साथ।

https://davidwalsh.name/global-variables-javascript

x = {};
var iframe = document.createElement('iframe');
iframe.onload = function() {
    var standardGlobals = Object.keys(iframe.contentWindow);
    for(var b in window) { 
      const prop = window[b];
      if(window.hasOwnProperty(b) && prop && !prop.toString().includes('native code') && !standardGlobals.includes(b)) {
        x[b] = prop;
      }
    }
    console.log(x)
};
iframe.src = 'about:blank';
document.body.appendChild(iframe);

x अब केवल ग्लोबल्स हैं।


1
prop.toStringहर जगह मौजूद नहीं लगता है, इसलिए स्थिति अधिक रक्षात्मक हो सकती हैif(window.hasOwnProperty(b) && prop && (prop.toString && !prop.toString().includes('native code')) && !standardGlobals.includes(b))
yves amsellem

6

जावास्क्रिप्ट कंसोल में निम्नलिखित कथन टाइप करें:

debugger

अब आप सामान्य डिबग टूल का उपयोग करके वैश्विक दायरे का निरीक्षण कर सकते हैं।

निष्पक्ष होने के लिए, आपको ब्राउज़र बिल्ट-इन सहित गुंजाइश में सब कुछ मिल जाएगा window, इसलिए यह सुई-इन-ए-हिस्टैक अनुभव की तरह हो सकता है। : /


4

आप Chrome के लिए इस Firebug लाइट एक्सटेंशन को आज़माना चाहते हैं ।


3
हालांकि यह अच्छा लग रहा है, यह समाधान मुझे मच्छर को मारने के लिए तोप का उपयोग करने में थोड़ा सा लगता है।
मार्सेल कोर्पेल

शायद। यह केवल एक चीज है जो मैंने पाया है कि वस्तुओं / कार्यों / आदि को दर्शाता है। जिस तरह से एफएफ में फायरबग (विस्तार में डोम-टैब के तहत) करता है। हालांकि यह थोड़ा धीमा है।
KooiInc

1
17 मई तक, आपका लिंक टूट गया है। क्या यह वही है? getfirebug.com/releases/lite/chrome
इयान हंटर

@ बीनलैंड 7: हाँ, यह जवाब में तय किया, चेतावनी के लिए thnx
KooiInc

4

क्रोम में किसी भी चर को देखने के लिए, "स्रोत" पर जाएं, और फिर "देखें" और इसे जोड़ें। यदि आप यहां "विंडो" चर जोड़ते हैं तो आप इसे विस्तारित कर सकते हैं और एक्सप्लोर कर सकते हैं।


4

उसी लेख से अद्यतित विधि Avindra ने उल्लेख किया है - iframe को इंजेक्ट करता है और इसके contentWindowगुणों की तुलना वैश्विक विंडो गुणों से करता है।

(function() {
  var iframe = document.createElement('iframe');
  iframe.onload = function() {
    var iframeKeys = Object.keys(iframe.contentWindow);
    Object.keys(window).forEach(function(key) {
      if(!(iframeKeys.indexOf(key) > -1)) {
        console.log(key);
      }
    });
  };
  iframe.src = 'about:blank';
  document.body.appendChild(iframe);
})();


2

प्रकार: this कंसोल में,

window objectमुझे लगता है कि पाने के लिए ?), मुझे लगता है कि यह मूल रूप से टाइपिंग के समान हैwindow से कंसोल में है।

यह कम से कम फ़ायरफ़ॉक्स और क्रोम में काम करता है।


1

जैसा कि सभी "सार्वजनिक चर" वास्तव में विंडो ऑब्जेक्ट (विंडो / टैब जिसे आप देख रहे हैं) के गुण हैं, आप केवल "विंडो" ऑब्जेक्ट का निरीक्षण कर सकते हैं। यदि आपके पास कई फ़्रेम हैं, तो आपको वैसे भी सही विंडो ऑब्जेक्ट (जैसे फ़ायरबग) का चयन करना होगा।



0

चर और उनके मूल्यों की सूची बनाएं

for(var b in window) { if(window.hasOwnProperty(b)) console.log(b+" = "+window[b]); }

यहां छवि विवरण दर्ज करें

किसी विशेष चर वस्तु का मूल्य प्रदर्शित करें

console.log(JSON.stringify(content_of_some_variable_object))

यहां छवि विवरण दर्ज करें

सूत्र: @ उत्तरी-ब्रैडली से टिप्पणी करें और @ निक-क्रेवर से उत्तर दें


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.