chrome.debugger
描述: |
chrome.debugger API 是 Chrome 远程调试协议(英文)的另一种消息传输方式。chrome.debugger 可以附加到一个或多个标签页,以便记录网络交互、调试 JavaScript、改变 DOM 和 CSS 等等。使用调试对象的标签页标识符指定 sendCommand 的目标标签页,并在 onEvent 的回调函数中通过标签页标识符分发事件。
|
可用版本: |
从 Chrome 18 开始支持。
|
权限: |
"debugger"
|
说明
目前,通过调试器 API 附加到标签页与在同一标签页使用内置的 Chrome 浏览器开发者工具两者不能同时进行。如果用户在扩展程序已附加到标签页时调用了 Chrome 浏览器的开发者工具,调试会话将终止,扩展程序可以之后再重新建立会话。
清单文件
您必须在您的扩展程序的清单文件中声明 "debugger" 权限才能使用这一 API。
{ "name": "我的扩展程序", ... "permissions": [ "debugger", ], ... }
例子
您可以在示例中找到这一 API 的示例。
摘要
类型 | |
---|---|
Debuggee | |
TargetInfo | |
方法 | |
attach −
chrome.debugger.attach( Debuggee target, string requiredVersion, function callback)
| |
detach −
chrome.debugger.detach( Debuggee target, function callback)
| |
sendCommand −
chrome.debugger.sendCommand( Debuggee target, string method, object commandParams, function callback)
| |
getTargets −
chrome.debugger.getTargets(function callback)
| |
事件 | |
onEvent | |
onDetach |
类型
Debuggee
属性 | ||
---|---|---|
integer | (可选) tabId |
您要调试的标签页的标识符。 |
string | (可选) extensionId |
从 Chrome 27 开始支持。 您要调试的扩展程序的标识符。只有当目标浏览器上启用了“silent-debugger-extension-api”标志后,才可以附加到扩展程序的后台网页。 |
string | (可选) targetId |
从 Chrome 28 开始支持。 调试目标的不透明标识符。 |
TargetInfo
从 Chrome 28 开始支持。
属性 | ||
---|---|---|
enum of "page" , "background_page" , "worker" , or "other" |
type |
目标类型。 |
string | id |
目标标识符。 |
integer | (可选) tabId |
从 Chrome 30 开始支持。 如果 type == 'page',则为标签页标识符。 |
string | (可选) extensionId |
从 Chrome 30 开始支持。 如果 type == 'background_page',则为扩展程序标识符。 |
boolean | attached |
如果已附加调试器则为 true。 |
string | title |
目标网页的标题。 |
string | url |
目标 URL。 |
string | (可选) faviconUrl |
目标的收藏夹图标 URL。 |
方法
attach
chrome.debugger.attach( Debuggee target, string requiredVersion, function callback)
将调试器附加到指定目标。
参数 | ||
---|---|---|
Debuggee | target |
您希望附加的调试目标。 |
string | requiredVersion |
要求的调试协议版本("0.1"),您只能附加到主版本号匹配且次要版本号大于或等于指定版本号的调试对象。协议版本可以从这里获取。 |
function | (可选) callback |
附加操作成功或失败后调用。回调函数不接受参数,如果附加失败,runtime.lastError 会设置为错误消息。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
detach
chrome.debugger.detach( Debuggee target, function callback)
使调试器脱离指定目标。
参数 | ||
---|---|---|
Debuggee | target |
您希望脱离的调试目标。 |
function | (可选) callback |
脱离操作成功或失败后调用。回调函数不接受参数,如果脱离失败,runtime.lastError 会设置为错误消息。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
sendCommand
chrome.debugger.sendCommand( Debuggee target, string method, object commandParams, function callback)
将指定命令发送至调试目标。
参数 | |||||
---|---|---|---|---|---|
Debuggee | target |
您需要发送命令的调试目标。 |
|||
string | method |
方法名称,应该为远程调试协议中定义的某一个方法。 |
|||
object | (可选) commandParams |
从 Chrome 22 开始支持。 包含请求参数的 JSON 对象,这一对象必须遵循适用于指定方法的远程调试参数架构。 |
|||
function | (可选) callback |
响应正文。如果发送消息时产生错误,将不传递参数调用这一回调函数,并将 runtime.lastError 设置为错误消息。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function(object result) {...};
|
getTargets
chrome.debugger.getTargets(function callback)
从 Chrome 28 开始支持。
返回可用调试目标的列表。
参数 | |||||
---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(array of TargetInfo result) {...};
|
事件
onEvent
当调试目标发出事件时产生。
addListener
chrome.debugger.onEvent.addListener(function callback)
onDetach
当浏览器终止某个标签页的调试会话时产生。这会在标签页关闭,或者 Chrome 浏览器的开发者工具在已附加调试器的标签页中调用时发生。
addListener
chrome.debugger.onDetach.addListener(function callback)
示例扩展程序
- Live HTTP headers – Displays the live log with the http requests headers
- JavaScript pause/resume – Pauses / resumes JavaScript execution