Web コンソールのコマンドラインで、JavaScript の構文を即座に評価することができます。
式を入力する
式の入力方法は、コマンドラインに入力して Enter を押下するだけです。複数行の式を入力する場合は、Enter の代わりに Shift+Enter を使用します。
入力した式をメッセージ表示ウィンドウにエコー出力して、その後に結果を出力します:
Firefox 47 より、Enter を押下したときに入力が完了していないと思われる場合は、Shift+Enter として扱い、入力を完了できるようになりました。
例えば、以下のように入力します:
function foo() {
そして Enter を押下すると、コンソールは直ちに入力内容を実行せずに Shift+Enter を押下したかのように動作しますので、関数定義の入力を完了できます。
変数にアクセスする
ページで定義している変数にアクセスすることができ、window
のように組み込み済みの変数と jQuery
のように JavaScript で追加した変数のどちらでも可能です:
オートコンプリート
コマンドラインにオートコンプリート機能があります。最初の数文字を入力すると、考えられる完成形を示すポップアップを表示します:
候補を受け入れるには Enter または Tab を押下します。また上/下矢印キーで別の候補へ移動できます。どの候補も望まない場合は入力を続けてください。
コンソールは、現在実行中のスタックフレームのスコープから候補を提示します。これにより関数内でブレークポイントに当たった場合は、関数内のローカルオブジェクトもオートコンプリートの対象になります。
配列要素向けのオートコンプリート候補も表示します:
変数を定義する
独自の変数を定義したり、その変数にアクセスしたりできます:
コマンド履歴
コマンドラインは、あなたが入力したコマンドを覚えています: 上下矢印キーで、履歴を行き来できます。
Firefox 39 より、この履歴はセッションをまたいで維持するようになりました。履歴をクリアするには、clearHistory()
支援コマンドを使用してください。
iframe で作業する
ページにインラインフレームを埋め込んでいる場合は、cd()
コマンドで特定のインラインフレームにコンソールのスコープを切り替えることができます。また、インラインフレームで表示しているドキュメントで定義した関数を実行できます。cd()
でインラインフレームを選択する方法は 3 通りあります:
インラインフレームの DOM 要素を渡すことができます:
var frame = document.getElementById("frame1"); cd(frame);
インラインフレームにマッチする CSS セレクタを渡すことができます:
cd("#frame1");
インラインフレームの window グローバルオブジェクトを渡すことができます:
var frame = document.getElementById("frame1"); cd(frame.contentWindow);
トップレベルの window にコンテキストを戻す場合は、引数を与えずに cd()
を呼び出してください:
cd();
例えば、インラインフレームを埋め込んだドキュメントがあるものとします:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> <iframe id="frame1" src="static/frame/my-frame1.html"></iframe> </body> </html>
インラインフレームで新たな関数を定義しています:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script> function whoAreYou() { return "I'm frame1"; } </script> </head> <body> </body> </html>
以下のようにしてコンテキストをインラインフレームに切り替えることができます:
cd("#frame1");
グローバル window の document がインラインフレームであることがわかります:
また、インラインフレーム内で定義した関数を呼び出すことができます:
支援コマンド
Web コンソールの JavaScript コマンドラインでは、いくつかの作業を簡単に行うための支援機能を内蔵しています。
$()
- CSS のセレクタ文字列を探索して、最初にマッチした要素を返します。これは
document.querySelector()
と等価です。または、$ 関数がページ内に存在する場合はそれを呼び出します。 $$()
- CSS のセレクタ文字列を探索して、マッチした DOM ノードのリストを返します。これは
document.querySelectorAll()
のショートカットです。
Firefox 41 より、このメソッドはdocument.querySelectorAll()
のショートカットではなくなり、代わりに要素の配列を返します。 $0
- ページ内で現在調査されている要素です。
$_
- Firefox 39 の新機能。コンソールのコマンドラインで最後に実行した式の結果を保持します。例えば "2+2 <enter>" と入力した後に "$_ <enter>" と入力すると、コンソールは 4 と出力します。
$x()
- XPath の構文を評価して、マッチするノードの配列を返します。
keys()
- オブジェクトを与えると、そのオブジェクトのキー (またはプロパティ名) の一覧を返します。これは
Object.keys
のショートカットです。 values()
- オブジェクトを与えると、そのオブジェクトの値の一覧を返します。これは
keys()
と対をなすものです。 clear()
- コンソールの出力エリアをクリアします。
inspect()
- オブジェクトを与えると、そのオブジェクトのオブジェクトインスペクタを開きます。
pprint()
- 指定された値を、読みやすい形式に整形します。これはオブジェクトや配列の内容をダンプするのに役立ちます。
help()
- ヘルプを開きます。実際は再帰の面白い例として、このページへ案内します。
cd()
- JavaScript の評価を行うコンテキストを、ページ内の別の iframe に切り替えます。iframe での作業をご覧ください。
copy()
- Firefox 38 の新機能。 引数で指定したものをクリップボードにコピーします。引数が文字列である場合は、そのままコピーします。また引数が DOM ノードである場合は、ノードの
outerHTML
をコピーします。他の値である場合は引数に対してJSON.stringify
を呼び出して、その結果をコピーします。 clearHistory()
- Firefox 39 の新機能。一般的なコマンドラインと同様に、コンソールのコマンドラインも過去に入力したコマンドを覚えています。この関数を実行すると、コンソールのコマンドラインの履歴を消去します。
- コンテンツからログを出力する機能について、詳しくは Console API をご覧ください。