共用方式為


主控台工具公用程式函式和選取器

主控台公用程式 API 包含一組方便的變數和函式,可執行一般工作,例如:

  • 選取並檢查 DOM 元素。
  • 以可讀取的格式顯示數據。
  • 停止並啟動分析工具。
  • 監視 DOM 事件。

這些變數和函式只能透過直接輸入DevTools 主控台來運作;您無法使用變數並從文稿呼叫函式。

摘要

變數或函式 描述
最近評估的表達式: $_ 傳回最近評估之表達式的值。
最近選取的專案或 JavaScript 物件:$0-$4 傳回最近選取的專案或 JavaScript 物件。
查詢選取器:$ (選取器) 查詢選取器;會傳回具有指定 CSS 選取器之第一個 DOM 項目的參考,例如 document.querySelector()
查詢選取器全部:$$ (選取器、[startNode]) 查詢選取器全部;會傳回符合指定 CSS 選取器的項目陣列,例如 document.querySelectorAll()
XPath:$x (路径,[startNode]) 傳回符合指定之 XPath 表達式的 DOM 項目陣列。
clear() 清除其歷程記錄的主控台。
複製 (物件) 將指定物件的字串表示複製到剪貼簿。
偵錯 (函式) 呼叫指定的函式時,會叫用調試程式,並在 [來源] 面板的函式內中斷。
dir (物件) 顯示指定物件之所有屬性的物件樣式清單,例如 console.dir()
dirxml (物件) 列印指定之物件的 XML 表示,如 專案 工具中所示,例如 console.dirxml()
檢查 (物件/函式) Elements 工具中 開啟並選取指定的 DOM 專案,或 記憶體 工具中指定的 JavaScript 堆積物件。
getEventListeners (物件) 傳回在指定對象上註冊的事件接聽程式。
索引鍵 (物件) 傳回數位,其中包含屬於指定物件之屬性的名稱。
監視 (函式) 將訊息記錄到主控台,指出函式名稱,以及在要求中傳遞給函式的自變數。
monitorEvents (object[, events]) 當指定的物件上發生其中一個指定的事件時,事件對象會記錄到主控台。
配置檔 ([name]) 使用選擇性名稱啟動 JavaScript CPU 分析工作階段。
profileEnd ([name]) 完成 JavaScript CPU 分析工作階段,並在效 能工具中 顯示結果。
queryObjects (建構函式) 傳回指定建構函式所建立之 對象的陣列。
數據表 (數據[, 資料行]) 記錄指定之數據對象的物件數據,格式化為具有數據行標題的數據表。
取消偵錯 (函式) 停止指定函式的偵錯,如此一來,當要求函式時,就不會再叫用調試程式。
unmonitor (函式) 停止監視指定的函式。
unmonitorEvents (object[, events]) 停止監視指定之物件和事件的事件。
物件) (值 傳回數位,其中包含屬於指定物件之所有屬性的值。

最近評估的表達式: $_

$_ 會傳回最近評估之表達式的值。

語法:

$_

範例 1

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入運算 2+2式 ,然後按 Enter

    會評估表達式,並顯示結果。 變數 $_ 也會設定為表達式的結果。

  3. 輸入 $_,然後按 Enter

    顯示 $_ 變數傳回上一個運算式結果的控制台工具

範例 2

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 將下列程式代碼貼到 主控台中,然後按 Enter

    ["john", "paul", "george", "ringo"]
    

    評估的表達式是名稱的陣列。

  3. 主控台中輸入下列程式代碼,然後按 Enter

    $_.length
    

    表達式 $_.length 會進行評估並 4 顯示在 控制台 中,因為 $_ 會參考先前評估的表達式,也就是名稱的數位。 $_.length 是名稱陣列的長度。

  4. 主控台中輸入下列程式代碼,然後按 Enter

    $_
    

    $_ 一律會參考先前評估的表達式,而此表達式現在是數位 4。

    $_ 的值會變更先前評估的表達式值

最近選取的專案或 JavaScript 物件:$0-$4

$0$1$2$3和 會傳 $4 回最近選取的專案或 JavaScript 物件。

$0 會傳回最近選取的專案或 JavaScript 對象、傳 $1 回第二個最近選取的專案,依此類推。 $0$1$2$3$4 變數可作為在 Elements 工具內檢查的最後五個 DOM 元素的歷史參考,或記憶體工具中選取的最後五個 JavaScript 堆積物件。

語法

$0

範例

  1. 若要開啟 DevTools,請以滑鼠右鍵按兩下網頁,然後選取 [ 檢查]。 或者,按 Ctrl+Shift+I (Windows、Linux) 或 Command+Option+I (macOS) 。 DevTools 隨即開啟。

  2. 在 [ 元素] 工具中,選取專案,例如 <input> 專案。

  3. 在 DevTools 底部的 [快速檢視] 面板中開啟控制台工具。

  4. 主控台工具中輸入 $0 ,然後按 Enter

    變數會 $0 傳回選取 <input> 的專案:

    評估控制台中 $0 命令的結果

  5. 在 [ 元素 ] 工具中選取不同的專案,例如 <div> 元素。

  6. 主控台 工具中,輸入 $0,然後按 Enter

    $0 會參考新選取的專案,也就是 <div> 元素。

  7. 輸入$1,然後按下 [Enter]

    $1 是指先前選取的專案,也就是 元素 <input>

    評估 $0 和 $1 命令的結果

查詢選取器:$ (選取器)

$(selector) 會傳回第一個符合指定 CSS 選取器 selector之 DOM 項目的參考。

此函式類似於 document.querySelector () 函式。

如果您使用使用 的 jQuery 之類的連結庫, $則會覆寫功能,並對 $ 應至該連結庫的 實作。

語法

$(selector, [parentElement])

範例 1

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中, 輸入 $('input')。 第一個符合 input CSS 選取器的項目隨即顯示:

    $ ('input') 會傳回網頁中第一個項目的參考

  3. 以滑鼠右鍵按兩下傳回的結果,然後選取 [ 在元素面板中 顯示] 以在 DOM 中尋找它,或 捲動至 [檢視 ] 以顯示在頁面上。

範例 2

$() 式會接受第二個參數 parentElement,指定要搜尋的父元素。 參數的預設值為 document,這表示預設會搜尋整個網頁。 藉由指定父元素,您可以在網頁的特定部分內搜尋元素。

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入 $('input', $('ul'))

    會重構符合第一個元素 input 中找到之 CSS 選取器的第一個 ul 元素:

    $ ('input', $ ('ul') ) 的結果

查詢選取器全部:$$ (選取器、[startNode])

$$() 會傳回符合指定 CSS 選取器的項目清單,例如 document.querySelectorAll()

此函式類似於 document.querySelectorAll () 但會傳回 array 專案的 ,而不是 NodeList

語法

$$(selector, [parentElement])

範例 1

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中, 輸入 $$('button')<button>網頁中的所有元素都會顯示:

    $$ ('button') 的結果

範例 2

$$() 函式也支援第二個參數 parentElement,指定要搜尋的父元素。 參數的預設值為 document,這表示預設會搜尋整個網頁。 藉由指定父元素,您可以在網頁的特定部分內搜尋元素。

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中, 輸入 $$('button', $('li.task'))<button>第一個<li class="task">元素的子代的所有元素都會顯示:

    $$ ('button', $ ('li.task') ) 的結果

XPath:$x (路径,[startNode])

$x(path) 會傳回符合指定之 XPath 運算式 的 DOM 項目陣列 path

語法

$x(path, [parentElement])

範例 1

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中, 輸入 $x("//li")<li>網頁中的所有元素都會顯示:

    使用 XPath 選取器

範例 2

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中, 輸入 $x("//li[button]")。 包含元素 <li> 的所有元素 <button> 都會顯示:

    使用更複雜的 XPath 選取器

類似於其他選取器命令, $x(path) 具有選擇性的第二個參數 parentElement,指定要在其中搜尋元素的項目或節點。

clear()

clear() 清除其歷程記錄的主控台。

語法

clear()

範例

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 若要在 主控台 工具中建立歷程記錄,請輸入多個 JavaScript 運算式。 例如:

    for (let i = 0; i < 10; i++) {
        console.log(i);
    }
    
  3. 若要清除歷程記錄,請在主控台工具中輸入 clear() ,然後按 Enter

    清除 () 命令的結果,主控台是空的,而且會出現「已清除主控台」訊息

複製 (物件)

copy(object) 會將指定物件的字串表示複製到剪貼簿。

語法

copy(object)

範例

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中輸入下列程式代碼,然後按 Enter

    copy($$('*').map(element => element.tagName));
    

    代碼段會使用 $$(selector) 函式來選取網頁中的所有元素,然後 tagName 將每個專案的 屬性對應至數位。 數位接著會使用 copy() 函式複製到剪貼簿。

  3. 將剪貼簿的內容貼到文字編輯器中。 剪貼簿的內容是網頁中所有 HTML 標籤清單,例如:

    ["HTML", "HEAD", "META", "TITLE", "LINK", "BODY", "H1", "FORM", "DIV", "LABEL", ...]
    

偵錯 (函式)

debug(function)呼叫該函式時,會在Sources工具的指定函function式內暫停。

調試程序暫停之後,您就可以逐步執行程式碼並進行偵錯。

語法

debug(function)

範例

  1. 開啟新的索引標籤或視窗,然後移至包含您要偵錯之 JavaScript 函式的頁面。 例如,移至 TODO 應用程式 示範頁面。

  2. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  3. 主控台 工具中, 輸入 debug(updateList)

  4. 在轉譯的網頁中,在 [新增工作文字] 欄位中輸入測試,然後按 Enter 鍵,將新的 TODO 專案新增至清單。

    除錯程式會在 Sources 工具的 updateList() 函式內暫停:

    調試程式會在 updateList 函式內暫停 ()

使用 undebug(function) 停止中斷函式,或使用UI關閉所有斷點。

如需斷點的詳細資訊,請參閱 使用斷點暫停您的程序代碼

dir (物件)

dir(object) 會顯示指定物件之所有屬性的物件樣式清單,例如 console.dir()

此函式是 console.dir () 的別名。

語法

dir(object)

範例

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入 document.head ,然後按 Enter

    隨即 <head> 顯示專案的 HTML 表示法。

  3. 輸入 dir(document.head) ,然後按 Enter

    隨即顯示專案所有屬性的 <head> 物件樣式清單:

    使用 'dir () ' 函式記錄 'document.head'

如需詳細資訊,請參閱控制台 API 中的 console.dir ()

dirxml (物件)

dirxml(object) 會列印指定之物件的 XML 表示,如 專案 工具中所示,例如 console.dirxml()

此函式相當於 console.dirxml ()

語法

dirxml(object)

檢查 (物件/函式)

inspect(element/function) 會在 Elements 工具中 開啟並選取指定的 DOM 專案,或在 Sources 工具中選取指定的 JavaScript 函式。

  • 針對 DOM 元素,此函式會開啟,並在 Elements 工具中選取指定的 DOM 專案
  • 對於 JavaScript 函式,此函式會在 Sources 工具中開啟指定的 JavaScript 函式。

語法

inspect(element/function)

範例

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入 inspect(document.body) ,然後按 Enter

    [ 元素] 工具隨即開啟, <body> 並選取元素:

    使用檢查 () 檢查專案

傳遞要檢查的函式時,函式會在 [來源 ] 工具中開啟網頁供您檢查。

getEventListeners (物件)

getEventListeners(object) 會傳回在指定對象上註冊的事件接聽程式。

傳回值是物件,其中包含每個已註冊事件類型 (的陣列,例如 clickkeydown) 。 每個陣列中的專案都是對象,這些物件描述為每個類型註冊的接聽程式。

語法

getEventListeners(object)

範例

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入 getEventListeners($('form')) ,然後按 Enter

    第一個 <form> 元素上註冊的事件接聽程式隨即顯示:

    使用 getEventListeners (表單) 的輸出

如果指定的對象上註冊了一個以上的接聽程式,則陣列會包含每個接聽程序的成員。 在下圖中,會在 事件的 元素clickdocument註冊兩個事件接聽程式:

在 『click』 事件的 'document' 元素上註冊多個事件接聽程式

索引鍵 (物件)

keys(object) 會傳回數位,其中包含屬於指定物件之屬性的名稱。

若要取得相同屬性的相關聯值,請參閱下 方) 物件 (值

語法

keys(object)

範例

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入下列程式代碼,然後按 Enter

    var player1 = {"name": "Ted", "level": 42}
    

    上述代碼段會在名為 player1的全域命名空間中定義 物件,其中包含兩個屬性。

  3. 若要取得屬於player1物件的屬性名稱,請在主控台工具中輸入 keys(player1) ,然後按 Enter

    索引鍵 () 函式的結果

  4. 若要取得屬於player1物件的屬性值,請在主控台工具中輸入 values(player1) ,然後按 Enter

    函式 () 值的結果

監視 (函式)

monitor(function) 每次呼叫指定的函式時,都會將訊息記錄到主控台。 訊息會指出傳遞給函式的函式名稱和自變數。

語法

monitor(function)

範例

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入下列程式代碼,然後按 Enter

    function sum(x, y) {
      return x + y;
    }
    

    上述代碼段會定義名為 的函式 sum,其接受兩個自變數。

  3. 若要開始監視函sum式,請在主控台工具中輸入 monitor(sum) ,然後按 Enter

  4. 若要呼叫函式,請輸入 sum(1, 2) 並按 Enter。 訊息隨即出現,指出 sum 已呼叫函式,以及傳遞至函式的自變數:

    監視器 () 函式的結果

若要結束監視,請使用 unmonitor(function)

monitorEvents (object[, events])

monitorEvents(object[, events]) 每次指定的事件發生在指定的物件上時,都會將事件對象記錄到主控台。

您可以指定要監視的單一事件、事件陣列,或對應至預先定義之事件集合的其中一個泛型事件類型。

語法

monitorEvents(object[, events])

範例 1

若要監視單一事件:

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入下列程式代碼,然後按 Enter

    monitorEvents(window, "resize");
    

    先前的代碼段會監視視窗物件上的所有重設大小事件。

  3. 調整視窗大小,例如讓 DevTools 變大或縮小。 調整事件大小會出現在 主控台 工具中:

    監視窗口調整事件大小

範例 2

若要監視多個事件:

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入下列程式代碼,然後按 Enter

    monitorEvents(window, ["resize", "scroll"]);
    

    先前的代碼段會定義事件名稱的數位,以監視 resize 窗口物件上的和 scroll eevent。

  3. 調整視窗的大小,例如讓視窗變短,然後捲動轉譯的網頁。 主控台工具中會顯示重設大小和捲動事件:

    監視視窗重設大小和捲動事件

範例 3

您也可以使用其中一組預先定義的事件來指定事件集合。 下表顯示可用的事件類型和相關聯的事件對應:

事件類型 對應的對應事件
mouse “click”、“dblclick”、“mousedown”、“mousemove”、“mouseout”、“mouseover”、“mouseup”、“mousewheel”
key “keydown”、“keypress”、“keyup”、“textInput”
touch “touchcancel”、“touchend”、“touchmove”、“touchstart”
control “blur”、“change”、“focus”、“reset”、“resize”、“scroll”、“select”、“submit”、“zoom”
  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台 工具中,輸入下列程式代碼,然後按 Enter

    monitorEvents(window, "key");
    

    先前的代碼段會監視視窗物件上的所有鍵盤事件。

  3. 在轉譯的網頁中,按任意鍵。 鍵盤事件會出現在 主控台 工具中:

    監視重要事件

profile ([name])

profile([name]) 會啟動具有選擇性名稱的 JavaScript CPU 分析會話。

若要完成設定檔並在效 工具中顯示結果,請呼叫 profileEnd ([name])

語法

profile([name])

範例

  1. 在新的索引標籤或視窗開啟您要分析的頁面。 例如,移至 [ 緩慢動畫 ] 示範頁面。

  2. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  3. 若要開始分析,請在 主控台 工具中輸入 profile("My profile),然後按 Enter

  4. 若要停止分析,請在經過一段時間之後輸入 profileEnd("My profile"),然後按 Enter

    設定檔案結果會出現在效 工具中:

    配置檔 () 函式的結果

您可以同時建立多個配置檔,而且不需要以建立順序結束每個配置檔。 例如,下列程式代碼會建立兩個配置檔,然後以相反的順序結束它們:

profile('A');
profile('B');
profileEnd('B');
profileEnd('A');

profileEnd ([name])

profileEnd([name]) 會完成 JavaScript CPU 分析工作階段,並在效 能工具中 顯示結果。

若要呼叫此函式,您必須執行 配置檔 ([name]) 函式。

語法

profileEnd([name])

如需詳細資訊,請 參閱上方的配置檔 ([name])

queryObjects (建構函式)

queryObjects(constructor) 會傳回指定建構函式所建立之 對象的陣列。

的範圍 queryObjects()主控台中目前選取的運行時間內容。

語法

queryObjects(constructor)

範例

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 若要傳回 HTML 元素的所有實例,請在主控台工具中輸入 queryObjects(HTMLElement) ,然後按 Enter

    queryObjects () 函式的結果

其他範例:

  • 如果您的網頁使用 物件,Promise請使用 queryObjects(Promise)Promise 傳回物件的所有實例。
  • 如果您的網頁使用 JavaScript 類別,ClassName請使用 queryObjects(ClassName) 傳回 類別的所有實例。

數據表 (數據[, 資料行])

table(data[, columns]) 記錄指定之數據對象的物件數據,格式化為具有數據行標題的數據表。

此函式是 console.table () 的 別名。

語法

table(data[, columns])

範例

若要將人員名稱清單顯示為資料表,請在 主控台中:

  1. Ctrl+Shift+J (Windows、Linux) 或 Command+Option+J (macOS) 。 主控台工具會在網頁旁的DevTools中開啟。

  2. 主控台中輸入下列程式代碼,然後按 Enter

    var names = {
      0: {
        firstName: "John",
        lastName: "Smith"
      },
      1:  {
        firstName: "Jane",
        lastName: "Doe"
      }
    };
    

    上述代碼段會在名為 names的全域命名空間中定義 物件,其中包含兩個屬性。

  3. 若要將物件顯示names為資料表,請在主控台中輸入 table(names) ,然後按 Enter

    數據表 () 函式的結果

取消偵錯 (函式)

undebug(function) 會停止指定函式的偵錯,因此當函式執行時,調試程式不會再在函式中暫停。

如需詳細資訊,請參閱上述 (函式) 偵錯。

語法

undebug(function)

unmonitor (函式)

unmonitor(function) 停止監視指定的函式。

如需詳細資訊,請 參閱上方的監視 (函式)

語法

unmonitor(function)

unmonitorEvents (object[, events])

unmonitorEvents(object[, events]) 停止監視指定之物件和事件的事件。

如需詳細資訊,請參閱上面 的 monitorEvents (object[, events])

語法

unmonitorEvents(object[, events])

物件) (值

values(object) 會傳回數位,其中包含屬於指定物件之所有屬性的值。

若要取得相同屬性的相關聯索引鍵,請參閱上述 ) 物件 (索引鍵

語法

values(object)

範例

請參閱上述索引 鍵 (物件) 範例。

另請參閱

注意事項

此頁面的部分是根據Google所建立和 共用的工作進行 修改,並根據 Creative Commons Attribution 4.0 國際授權中所述的條款使用。 原始頁面 可在這裡 找到,並由 Basques 撰寫。

Creative Commons 授權 此工作是根據 Creative Commons Attribution 4.0 International License 授權