跳到主要内容

类: Debugger

类: Debugger

Chrome 远程调试协议的替代传输方式。

进程: 主进程
此类别不是从 'electron' 模块导出的。它仅在 Electron API 中作为其他方法的返回值可用。

Chrome 开发者工具在 JavaScript 运行时有一个 特殊绑定,允许与页面交互并对其进行检测。

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()

try {
win.webContents.debugger.attach('1.1')
} catch (err) {
console.log('Debugger attach failed : ', err)
}

win.webContents.debugger.on('detach', (event, reason) => {
console.log('Debugger detached due to : ', reason)
})

win.webContents.debugger.on('message', (event, method, params) => {
if (method === 'Network.requestWillBeSent') {
if (params.request.url === 'https://www.github.com') {
win.webContents.debugger.detach()
}
}
})

win.webContents.debugger.sendCommand('Network.enable')

实例事件

事件: 'detach'

返回

  • event Event
  • reason string - 分离调试器的原因。

当调试会话终止时发出。 这会在 webContents 关闭或为附加的 webContents 调用 devtools 时发生。

事件: 'message'

返回

  • event Event
  • method string - 方法名称。
  • params any - 远程调试协议中“parameters”属性定义的事件参数。
  • sessionId string - 附加调试会话的唯一标识符,将与从 debugger.sendCommand 发送的值匹配。

每当调试目标发出检测事件时发出。

实例方法

debugger.attach([protocolVersion])

  • protocolVersion string (可选) - 请求的调试协议版本。

将调试器附加到 webContents

debugger.isAttached()

返回 boolean - 是否有调试器附加到 webContents

debugger.detach()

将调试器从 webContents 中分离。

debugger.sendCommand(method[, commandParams, sessionId])

  • method string - 方法名称,应为 远程调试协议 定义的方法之一。
  • commandParams any (可选) - 带有请求参数的 JSON 对象。
  • sessionId string (可选) - 将命令发送到具有关联调试会话 ID 的目标。初始值可以通过发送 Target.attachToTarget 消息获得。

返回 Promise<any> - 一个 promise,它使用远程调试协议中命令描述的“returns”属性定义的响应来解析,或者被拒绝表示该命令失败。

将给定的命令发送到调试目标。