Google ChromeコンソールのすべてのJavaScript変数のリストを表示


236

Firebugでは、[DOM]タブにすべてのパブリック変数とオブジェクトのリストが表示されます。Chromeのコンソールで、探索するパブリック変数またはオブジェクトの名前を入力する必要があります。

Chromeのコンソールですべてのパブリック変数とオブジェクトのリストを表示する方法、または少なくともコマンドはありますか?タイピングの手間が省けます。

回答:


330

これはあなたが探している種類の出力ですか?

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

この意志のリストで利用可能なすべてwindowのオブジェクト(たとえば、すべての関数と変数、$およびjQueryこのページの、など)。しかし、これはかなりのリストです。それがどれほど役立つかわかりません...

それ以外の場合はwindow、実行してツリーを下っていきます。

window

これDOMWindowにより、展開可能/探索可能なオブジェクトが提供されます。


4
@ntownsend-私のコンソールはあなたに同意しません:) これはのプロパティですがobject、なぜそれがないのですか?
Nick Craver

9
「どうしてそれがないの?」[[Prototype]]グローバルオブジェクトの内部プロパティは実装に依存します。ほとんどすべての主要な実装(V8、Spidermonkey、Rhinoなど)では、グローバルオブジェクトはある時点で継承しますObject.prototypeが、たとえば、他の実装では-JScript、BESEN、DMDScriptなどです。 ..-それは、そうしないwindow.hasOwnProperty私達ができることをテストするために、存在しません:Object.prototype.isPrototypeOf(window);
CMS

10
@CMS-はい、そうです...しかし質問は特にChromeに関するものなので、実装は既知です。
Nick Craver

6
または、これを入力することもできます。
エディB

2
私が使用したので、私は同様に変数の値を見てみたかった:for(var b in window) { if(window.hasOwnProperty(b)) console.log(b+" = "+window[b]); }
北部・ブラドリー

75

スクリプトの実行が停止したとき(ブレークポイントなど)、開発者ツールウィンドウの右側のペインにすべてのグローバルを表示できます。

クロムグローバル


2
ブレークポイントショーのように、停止せずに実行コンテキストから変数を吐き出すことはできますか?
軽度のファズ2013

1
@MildFuzz次に、Nick Craverのソリューション(承認済みのもの)を使用します。
Marcel Korpel 2013年

61

コンソールを開き、次のように入力します。

  • keys(window) 変数を確認するには
  • dir(window) オブジェクトを見る

dir(Function("return this")())Webワーカーでも機能します
Janus Troelsen、2015年

2
FYI dir(window)はFirefoxでは機能しません(そうです、このスレッドはChromeに関するものでした)がkey(window)、Firefoxでは機能します
Craig London

38

windowあなたがコンソールに入力して、すべての変数/属性/機能を表示するために拡張することができるようにオブジェクトは、すべてのパブリック変数が含まれています。

chrome-show-all-variables-expand-window-object


4
いいね!変数を再帰的に展開できるため、はるかに簡単な方法です。
qwertzguy 2015年

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
:これは、現在のChromeとFirefoxのデフォルトのグローバルのリストですpastebin.com/wNj3kfg0
redaxmedia

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

JavaScriptコンソールに次のステートメントを入力します。

debugger

これで、通常のデバッグツールを使用してグローバルスコープを検査できます。

公平を期すために、ブラウザーの組み込みを含め、スコープ内のすべてのものを取得するwindowので、これは一種の干し草のような体験になるかもしれません。:/


4

このChrome向けFirebug lite拡張機能をお試しください。


3
見た目は良いですが、この解決策は、大砲を使って蚊を殺すように聞こえます。
Marcel Korpel、

多分。私が見つけたのは、オブジェクト/関数/などを示すものだけです。FFのFirebugが行う方法(拡張機能のDOMタブの下)。少し遅いけど。
KooiInc 2010年

1
5月17日現在、リンクが壊れています。これは同じですか?getfirebug.com/releases/lite/chrome
イアンハンター

@beanland 7:はい、回答で修正しました。thnxfor warning
KooiInc

4

変数をChromeで表示するには、[ソース]に移動し、[ウォッチ]に移動して追加します。ここに「ウィンドウ」変数を追加すると、変数を展開して探索できます。


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にはコンソールでの。

少なくともFirefoxとChromeでは機能します。


1

すべての「パブリック変数」は実際には(表示しているウィンドウ/タブの)ウィンドウオブジェクトのプロパティなので、代わりに「ウィンドウ」オブジェクトを検査するだけで済みます。複数のフレームがある場合は、とにかく正しいウィンドウオブジェクト(Firebugなど)を選択する必要があります。



0

変数とその値をリストする

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

ここに画像の説明を入力してください

特定の変数オブジェクトの値を表示する

console.log(JSON.stringify(content_of_some_variable_object))

ここに画像の説明を入力してください

出典:@ northern-bradleyからのコメントと@ nick-craverからの回答


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.