Electron 문서1.4.1

Docs / API / webContents

webContents

웹 페이지를 렌더링하고 제어합니다.

webContentsEventEmitter를 상속받았습니다. 웹 페이지의 렌더링과 관리를 책임지며 BrowserWindow의 속성입니다. 다음은 webContents 객체에 접근하는 예시입니다:

const {BrowserWindow} = require('electron')

let win = new BrowserWindow({width: 800, height: 1500})
win.loadURL('http://github.com')

let contents = win.webContents
console.log(contents)

Methods

다음 메서드는 webContents 모듈에서 접근할 수 있는 메서드입니다:

const {webContents} = require('electron')
console.log(webContents)

webContents.getAllWebContents()

Returns WebContents[] - 모든 WebContents 인스턴스의 배열. 이 배열은 윈도우, 웹뷰, 열린 개발자 도구 그리고 백그라운드 페이지의 개발자 도구 확장 기능의 모든 웹 콘텐츠를 포함합니다.

webContents.getFocusedWebContents()

Returns WebContents - 이 애플리케이션에서 포커스되어있는 웹 콘텐츠. 없을 경우 null 을 반환합니다.

webContents.fromId(id)

Returns WebContents - ID 에 해당하는 WebContens 인스턴스.

Class: WebContents

BrowserWindow 인스턴스의 콘텐츠를 표시하고 제어합니다.

Instance Events

Event: ‘did-finish-load’

탐색 작업이 끝났을 때 발생하는 이벤트입니다. 브라우저의 탭의 스피너가 멈추고 onload 이벤트가 발생했을 때를 말합니다.

Event: ‘did-fail-load’

Returns:

이 이벤트는 did-finish-load와 비슷하나, 로드가 실패했거나 취소되었을 때 발생합니다. 예를 들면 window.stop()이 실행되었을 때 발생합니다. 발생할 수 있는 전체 에러 코드의 목록과 설명은 여기서 확인할 수 있습니다. 참고로 리다이렉트 응답은 errorCode -3과 함께 발생합니다; 이 에러는 명시적으로 무시할 수 있습니다.

Event: ‘did-frame-finish-load’

Returns:

프레임(Frame)이 탐색을 끝냈을 때 발생하는 이벤트입니다.

Event: ‘did-start-loading’

브라우저 탭의 스피너가 회전을 시작한 때와 같은 시점에 대응하는 이벤트입니다.

Event: ‘did-stop-loading’

브라우저 탭의 스피너가 회전을 멈추었을 때와 같은 시점에 대응하는 이벤트입니다.

Event: ‘did-get-response-details’

Returns:

요청한 리소스에 관련된 자세한 정보를 사용할 수 있을 때 발생하는 이벤트입니다. status는 리소스를 다운로드하기 위한 소켓 연결을 나타냅니다.

Event: ‘did-get-redirect-request’

Returns:

리소스를 요청하는 동안에 리다이렉트 응답을 받았을 때 발생하는 이벤트입니다.

Event: ‘dom-ready’

Returns:

주어진 프레임의 문서가 로드되었을 때 발생하는 이벤트입니다.

Event: ‘page-favicon-updated’

Returns:

페이지가 favicon(파비콘) URL을 받았을 때 발생하는 이벤트입니다.

Event: ‘new-window’

Returns:

페이지가 url에 대하여 새로운 윈도우를 열기위해 요청한 경우 발생하는 이벤트입니다. window.open이나 <a target='_blank'>과 같은 외부 링크에 의해 요청될 수 있습니다.

기본값으로 BrowserWindowurl을 기반으로 생성됩니다.

event.preventDefault()를 호출하면 새로운 창이 생성되는 것을 방지할 수 있습니다. 이 경우, event.newGuest 는 Electron 의 런타임에 의해 사용할 수 있게 BrowserWindow 인스턴스에 대한 참조를 설정할 수 있습니다.

Event: ‘will-navigate’

Returns:

사용자 또는 페이지가 새로운 페이지로 이동할 때 발생하는 이벤트입니다. window.location 객체가 변경되거나 사용자가 페이지의 링크를 클릭했을 때 발생합니다.

이 이벤트는 webContents.loadURLwebContents.back 같은 API를 이용한 프로그램적으로 시작된 탐색에 대해서는 발생하지 않습니다.

이 이벤트는 앵커 링크를 클릭하거나 window.location.hash의 값을 변경하는 등의 페이지 내 탐색시엔 발생하지 않습니다. 대신 did-navigate-in-page 이벤트를 사용해야 합니다.

event.preventDefault()를 호출하면 탐색을 방지할 수 있습니다.

Event: ‘did-navigate’

Returns:

탐색이 완료되면 발생하는 이벤트입니다.

이 이벤트는 앵커 링크를 클릭하거나 window.location.hash의 값을 변경하는 등의 페이지 내 탐색시엔 발생하지 않습니다. 대신 did-navigate-in-page 이벤트를 사용해야 합니다.

Event: ‘did-navigate-in-page’

Returns:

페이지 내의 탐색이 완료되면 발생하는 이벤트입니다.

페이지 내의 탐색이 발생하면 페이지 URL이 변경되지만 페이지 밖으로의 탐색은 일어나지 않습니다. 예를 들어 앵커 링크를 클릭했을 때, 또는 DOM hashchange 이벤트가 발생했을 때로 볼 수 있습니다.

Event: ‘crashed’

Returns:

렌더러 프로세스가 충돌하거나 종료될 때 발생되는 이벤트입니다.

Event: ‘plugin-crashed’

Returns:

플러그인 프로세스가 예기치 못하게 종료되었을 때 발생되는 이벤트입니다.

Event: ‘destroyed’

webContents가 소멸될 때 발생되는 이벤트입니다.

Event: ‘devtools-opened’

개발자 도구가 열렸을 때 발생되는 이벤트입니다.

Event: ‘devtools-closed’

개발자 도구가 닫혔을 때 발생되는 이벤트입니다.

Event: ‘devtools-focused’

개발자 도구에 포커스가 가거나 개발자 도구가 열렸을 때 발생되는 이벤트입니다.

Event: ‘certificate-error’

Returns:

url에 대한 certificate 인증서의 유효성 검증에 실패했을 때 발생하는 이벤트입니다.

사용법은 appcertificate-error 이벤트와 같습니다.

Event: ‘select-client-certificate’

Returns:

클라이언트 인증이 요청되었을 때 발생하는 이벤트입니다.

사용법은 appselect-client-certificate 이벤트와 같습니다.

Event: ‘login’

Returns:

webContents가 기본 인증을 수행하길 원할 때 발생되는 이벤트입니다.

applogin이벤트와 사용 방법은 같습니다.

Event: ‘found-in-page’

Returns:

webContents.findInPage 요청의 결과를 사용할 수 있을 때 발생하는 이벤트입니다.

Event: ‘media-started-playing’

미디어가 재생되기 시작할 때 발생하는 이벤트입니다.

Event: ‘media-paused’

미디어가 중지되거나 재생이 완료되었을 때 발생하는 이벤트입니다.

Event: ‘did-change-theme-color’

페이지의 테마 색이 변경될 때 발생하는 이벤트입니다. 이 이벤트는 보통 meta 태그에 의해서 발생합니다:

<meta name='theme-color' content='#ff0000'>

Event: ‘update-target-url’

Returns:

마우스나 키보드를 사용해 링크에 포커스할 때 발생하는 이벤트입니다.

Event: ‘cursor-changed’

Returns:

커서 종류가 변경될 때 발생하는 이벤트입니다. type 인수는 다음 값이 될 수 있습니다: default, crosshair, pointer, text, wait, help, e-resize, n-resize, ne-resize, nw-resize, s-resize, se-resize, sw-resize, w-resize, ns-resize, ew-resize, nesw-resize, nwse-resize, col-resize, row-resize, m-panning, e-panning, n-panning, ne-panning, nw-panning, s-panning, se-panning, sw-panning, w-panning, move, vertical-text, cell, context-menu, alias, progress, nodrop, copy, none, not-allowed, zoom-in, zoom-out, grab, grabbing, custom.

만약 type 인수가 custom 이고 image 인수가 NativeImage를 통한 커스텀 커서를 지정했을 때, 해당 이미지로 커서가 변경됩니다. 또한 scale, size 그리고 hotspot 인수는 커스텀 커서의 추가적인 정보를 포함합니다.

Event: ‘context-menu’

Returns:

mediaFlags는 다음과 같은 속성을 가지고 있습니다:

editFlags는 다음과 같은 속성을 가지고 있습니다:

새로운 컨텍스트 메뉴의 제어가 필요할 때 발생하는 이벤트입니다.

Event: ‘select-bluetooth-device’

Returns:

navigator.bluetooth.requestDevice의 호출에 의해 블루투스 기기가 선택되어야 할 때 발생하는 이벤트입니다. navigator.bluetooth API를 사용하려면 webBluetooth가 활성화되어 있어야 합니다. 만약 event.preventDefault이 호출되지 않으면, 첫 번째로 사용 가능한 기기가 선택됩니다. callback은 반드시 선택될 deviceId와 함께 호출되어야 하며, 빈 문자열을 callback에 보내면 요청이 취소됩니다.

const {app, webContents} = require('electron')
app.commandLine.appendSwitch('enable-web-bluetooth')

app.on('ready', () => {
  webContents.on('select-bluetooth-device', (event, deviceList, callback) => {
    event.preventDefault()
    let result = deviceList.find((device) => {
      return device.deviceName === 'test'
    })
    if (!result) {
      callback('')
    } else {
      callback(result.deviceId)
    }
  })
})

Event: ‘paint’

Returns:

새 프레임이 생성되었을 때 발생하는 이벤트입니다. Dirty 영역만이 버퍼로 전달됩니다.

const {BrowserWindow} = require('electron')

let win = new BrowserWindow({webPreferences: {offscreen: true}})
win.webContents.on('paint', (event, dirty, image) => {
  // updateBitmap(dirty, image.toBitmap())
})
win.loadURL('http://github.com')

Instance Methods

contents.loadURL(url[, options])

윈도우에 웹 페이지 url을 로드합니다. urlhttp://, file://과 같은 프로토콜 접두사를 가지고 있어야 합니다. 만약 반드시 http 캐시를 사용하지 않고 로드해야 하는 경우 pragma 헤더를 사용할 수 있습니다.

const {webContents} = require('electron')
const options = {extraHeaders: 'pragma: no-cache\n'}
webContents.loadURL(url, options)

contents.downloadURL(url)

url의 리소스를 탐색 없이 다운로드를 시작합니다. sessionwill-download 이벤트가 발생합니다.

contents.getURL()

현재 웹 페이지의 URL을 반환합니다.

const {BrowserWindow} = require('electron')
let win = new BrowserWindow({width: 800, height: 600})
win.loadURL('http://github.com')

let currentURL = win.webContents.getURL()
console.log(currentURL)

contents.getTitle()

현재 웹 페이지의 제목을 반환합니다.

win.isDestroyed()

윈도우가 소멸되었는지 여부를 반환합니다.

contents.isFocused()

웹 페이지가 포커스되어있는지 여부를 반환합니다.

contents.isLoading()

현재 웹 페이지가 리소스를 로드중인지 여부를 반환합니다.

contents.isLoadingMainFrame()

메인 프레임이 여전히 로딩중인지 여부를 반환합니다. (내부 iframe 또는 frame 포함)

contents.isWaitingForResponse()

현재 웹 페이지가 페이지의 메인 리소스로부터 첫 응답을 기다리고있는지 여부를 반환합니다.

contents.stop()

대기중인 탐색 작업을 모두 멈춥니다.

contents.reload()

현재 웹 페이지를 새로고침합니다.

contents.reloadIgnoringCache()

현재 웹 페이지의 캐시를 무시한 채로 새로고침합니다.

contents.canGoBack()

브라우저가 이전 웹 페이지로 돌아갈 수 있는지 여부를 반환합니다.

contents.canGoForward()

브라우저가 다음 웹 페이지로 이동할 수 있는지 여부를 반환합니다.

contents.canGoToOffset(offset)

웹 페이지가 offset로 이동할 수 있는지 여부를 반환합니다.

contents.clearHistory()

탐색 기록을 삭제합니다.

contents.goBack()

브라우저가 이전 웹 페이지로 이동하게 합니다.

contents.goForward()

브라우저가 다음 웹 페이지로 이동하게 합니다.

contents.goToIndex(index)

브라우저가 지정된 절대 웹 페이지 인덱스로 탐색하게 합니다.

contents.goToOffset(offset)

“current entry”에서 지정된 offset으로 탐색합니다.

contents.isCrashed()

렌더러 프로세스가 예기치 않게 종료되었는지 여부를 반환합니다.

contents.setUserAgent(userAgent)

현재 웹 페이지의 유저 에이전트를 덮어씌웁니다.

contents.getUserAgent()

현재 웹 페이지의 유저 에이전트 문자열을 반환합니다.

contents.insertCSS(css)

CSS 코드를 현재 웹 페이지에 삽입합니다.

contents.executeJavaScript(code[, userGesture, callback])

페이지에서 자바스크립트 코드를 실행합니다.

기본적으로 requestFullScreen와 같은 몇몇 HTML API들은 사용자의 조작에 의해서만 호출될 수 있습니다. userGesturetrue로 설정하면 이러한 제약을 무시할 수 있습니다.

contents.setAudioMuted(muted)

현재 웹 페이지의 소리를 음소거합니다.

contents.isAudioMuted()

현재 페이지가 음소거 되어있는지 여부를 반환합니다.

contents.setZoomFactor(factor)

지정한 수치로 줌 수치를 변경합니다. 줌 수치는 100으로 나눈 값이며 300%는 3.0이 됩니다.

contents.getZoomFactor(callback)

현재 줌 수치 값을 요청합니다. callbackcallback(zoomFactor) 형태로 호출됩니다.

contents.setZoomLevel(level)

지정한 수준으로 줌 수준을 변경합니다. 원본 크기는 0이고 각 값의 증가와 감소는 현재 줌을 20% 크거나 작게 표현하고 각 크기는 원본 크기의 300%와 50%로 제한됩니다.

contents.getZoomLevel(callback)

현재 줌 수준 값을 요청합니다. callbackcallback(zoomLevel) 형태로 호출됩니다.

contents.setZoomLevelLimits(minimumLevel, maximumLevel)

최대와 최소 값의 줌 수준 값을 지정합니다.

contents.undo()

웹 페이지에서 undo 편집 커맨드를 실행합니다.

contents.redo()

웹 페이지에서 redo 편집 커맨드를 실행합니다.

contents.cut()

웹 페이지에서 cut 편집 커맨드를 실행합니다.

contents.copy()

웹 페이지에서 copy 편집 커맨드를 실행합니다.

contents.copyImageAt(x, y)

주어진 위치에 있는 이미지를 클립보드로 복사합니다.

contents.paste()

웹 페이지에서 paste 편집 커맨드를 실행합니다.

contents.pasteAndMatchStyle()

웹 페이지에서 pasteAndMatchStyle 편집 커맨드를 실행합니다.

contents.delete()

웹 페이지에서 delete 편집 커맨드를 실행합니다.

contents.selectAll()

웹 페이지에서 selectAll 편집 커맨드를 실행합니다.

contents.unselect()

웹 페이지에서 unselect 편집 커맨드를 실행합니다.

contents.replace(text)

웹 페이지에서 replace 편집 커맨드를 실행합니다.

contents.replaceMisspelling(text)

웹 페이지에서 replaceMisspelling 편집 커맨드를 실행합니다.

contents.insertText(text)

포커스된 요소에 text를 삽입합니다.

contents.findInPage(text[, options])

웹 페이지에서 text에 일치하는 모든 대상을 찾는 요청을 시작하고 요청에 사용된 요청을 표현하는 정수(integer)를 반환합니다. 요청의 결과는 found-in-page 이벤트를 통해 취득할 수 있습니다.

contents.stopFindInPage(action)

제공된 action에 대한 webContents의 모든 findInPage 요청을 중지합니다.

const {webContents} = require('electron')
webContents.on('found-in-page', (event, result) => {
  if (result.finalUpdate) webContents.stopFindInPage('clearSelection')
})

const requestId = webContents.findInPage('api')
console.log(requestId)

contents.capturePage([rect, ]callback)

페이지의 스크린샷을 rect에 설정한 만큼 캡처합니다. 캡처가 완료되면 callbackcallback(image) 형식으로 호출됩니다. imageNativeImage의 인스턴스이며 스크린샷 데이터를 담고있습니다. rect를 생략하면 페이지 전체를 캡처합니다.

contents.hasServiceWorker(callback)

ServiceWorker가 등록되어있는지 확인하고 callback에 대한 응답으로 boolean 값을 반환합니다.

contents.unregisterServiceWorker(callback)

ServiceWorker가 존재하면 모두 등록을 해제하고 JS Promise가 만족될 때 callback에 대한 응답으로 boolean을 반환하거나 JS Promise가 만족되지 않을 때 false를 반환합니다.

contents.print([options])

options Object (optional) * silent Boolean - 사용자에게 프린트 설정을 묻지 않습니다. 기본값을 false입니다. * printBackground Boolean - 웹 페이지의 배경 색과 이미지를 출력합니다. 기본값은 false입니다.

윈도우의 웹 페이지를 프린트합니다. silenttrue로 지정되어있을 땐, Electron이 시스템의 기본 프린터와 기본 프린터 설정을 가져옵니다.

웹 페이지에서 window.print()를 호출하는 것은 webContents.print({silent: false, printBackground: false})를 호출하는 것과 같습니다.

contents.printToPDF(options, callback)

Chromium의 미리보기 프린팅 커스텀 설정을 이용하여 윈도우의 웹 페이지를 PDF로 프린트합니다.

callback은 작업이 완료되면 callback(error, data) 형식으로 호출됩니다. data는 생성된 PDF 데이터를 담고있는 Buffer입니다.

기본으로 비어있는 options은 다음과 같이 여겨지게 됩니다:

{
  marginsType: 0,
  printBackground: false,
  printSelectionOnly: false,
  landscape: false
}

다음은 webContents.printToPDF의 예시입니다:

const {BrowserWindow} = require('electron')
const fs = require('fs')

let win = new BrowserWindow({width: 800, height: 600})
win.loadURL('http://github.com')

win.webContents.on('did-finish-load', () => {
  // 기본 프린트 옵션을 사용합니다
  win.webContents.printToPDF({}, (error, data) => {
    if (error) throw error
    fs.writeFile('/tmp/print.pdf', data, (error) => {
      if (error) throw error
      console.log('Write PDF successfully.')
    })
  })
})

contents.addWorkSpace(path)

특정 경로를 개발자 도구의 워크스페이스에 추가합니다. 반드시 개발자 도구의 생성이 완료된 이후에 사용해야 합니다.

const {BrowserWindow} = require('electron')
let win = new BrowserWindow()
win.webContents.on('devtools-opened', () => {
  win.webContents.addWorkSpace(__dirname)
})

contents.removeWorkSpace(path)

특정 경로를 개발자 도구의 워크스페이스에서 제거합니다.

contents.openDevTools([options])

개발자 도구를 엽니다.

contents.closeDevTools()

개발자 도구를 닫습니다.

contents.isDevToolsOpened()

개발자 도구가 열려있는지 여부를 반환합니다.

contents.isDevToolsFocused()

개발자 도구에 포커스 되어있는지 여부를 반환합니다.

contents.toggleDevTools()

개발자 도구를 토글합니다.

contents.inspectElement(x, y)

(x, y)위치의 요소를 조사합니다.

contents.inspectServiceWorker()

서비스 워커 컨텍스트(service worker context)를 위한 개발자 도구를 엽니다.

contents.send(channel[, arg1][, arg2][, ...])

channel을 통하여 렌더러 프로세스에 비동기 메시지를 보냅니다. 임의의 인수를 보낼수도 있습니다. 인수들은 내부적으로 JSON 포맷으로 직렬화 되며, 이후 함수와 프로토타입 체인은 포함되지 않게 됩니다.

렌더러 프로세스는 ipcRenderer 모듈을 통하여 channel를 리스닝하여 메시지를 처리할 수 있습니다.

메인 프로세스에서 렌더러 프로세스로 메시지를 보내는 예시 입니다:

// In the main process.
const {app, BrowserWindow} = require('electron')
let win = null
app.on('ready', () => {
  win = new BrowserWindow({width: 800, height: 600})
  win.loadURL(`file://${__dirname}/index.html`)
  win.webContents.on('did-finish-load', () => {
    win.webContents.send('ping', 'whoooooooh!')
  })
})
<!-- index.html -->
<html>
<body>
  <script>
    require('electron').ipcRenderer.on('ping', (event, message) => {
      console.log(message)  // "whoooooooh!" 출력
    });
  </script>
</body>
</html>

contents.enableDeviceEmulation(parameters)

parameters로 디바이스 에뮬레이션을 사용합니다.

contents.disableDeviceEmulation()

webContents.enableDeviceEmulation로 활성화된 디바이스 에뮬레이선을 비활성화 합니다.

contents.sendInputEvent(event)

Input event를 웹 페이지로 전송합니다.

키보드 이벤트들에 대해서는 event 객체는 다음 속성들을 사용할 수 있습니다:

마우스 이벤트들에 대해서는 event 객체는 다음 속성들을 사용할 수 있습니다:

mouseWheel 이벤트에 대해서는 event 객체는 다음 속성들을 사용할 수 있습니다:

contents.beginFrameSubscription([onlyDirty ,]callback)

캡처된 프레임과 프레젠테이션 이벤트를 구독하기 시작합니다. callback은 프레젠테이션 이벤트가 발생했을 때 callback(frameBuffer, dirtyRect) 형태로 호출됩니다.

frameBuffer는 raw 픽셀 데이터를 가지고 있는 Buffer 객체입니다. 많은 장치에서 32비트 BGRA 포맷을 사용하여 효율적으로 픽셀 데이터를 저장합니다. 하지만 실질적인 데이터 저장 방식은 프로세서의 엔디안 방식에 따라서 달라집니다. (따라서 현대의 많은 프로세서에선 little-endian 방식을 사용하므로 위의 포맷을 그대로 표현합니다. 하지만 몇몇 프로세서는 big-endian 방식을 사용하는데, 이 경우 32비트 ARGB 포맷을 사용합니다)

dirtyRect는 페이지의 어떤 부분이 다시 그려졌는지를 표현하는 x, y, width, height 속성을 포함하는 객체입니다. 만약 onlyDirtytrue로 지정되어 있으면, frameBuffer가 다시 그려진 부분만 포함합니다. onlyDirty의 기본값은 false입니다.

contents.endFrameSubscription()

프레임 프레젠테이션 이벤트들에 대한 구독을 중지합니다.

contents.startDrag(item)

현재 진행중인 드래그-드롭에 item을 드래그 중인 아이템으로 설정합니다. file은 드래그될 파일의 절대 경로입니다. 그리고 icon은 드래그 도중 커서 밑에 표시될 이미지입니다.

contents.savePage(fullPath, saveType, callback)

만약 페이지를 저장하는 프로세스가 성공적으로 끝났을 경우 true를 반환합니다.

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

win.loadURL('https://github.com')

win.webContents.on('did-finish-load', () => {
  win.webContents.savePage('/tmp/test.html', 'HTMLComplete', (error) => {
    if (!error) console.log('Save page successfully')
  })
})

contents.showDefinitionForSelection() macOS

페이지에서 선택된 단어에 대한 사전 검색 결과 팝업을 표시합니다.

contents.isOffscreen()

오프 스크린 렌더링 이 활성화되었는지 여부를 표시합니다.

contents.startPainting()

오프 스크린 렌더링 이 활성화되었고 페인팅 상태가 아니라면 페인팅을 시작합니다.

contents.stopPainting()

오프 스크린 렌더링 이 활성화되었고 페인팅 상태라면 페인팅을 중지합니다.

contents.isPainting()

오프 스크린 렌더링 이 활성화된 경우 현재 패인팅 상태를 반환합니다.

contents.setFrameRate(fps)

오프 스크린 렌더링 이 활성화된 경우 프레임 레이트를 지정한 숫자로 지정합니다. 1과 60 사이의 값만 사용할 수 있습니다.

contents.getFrameRate()

오프 스크린 렌더링 이 활성화된 경우 현재 프레임 레이트를 반환합니다.

contents.invalidate()

오프 스크린 렌더링 이 활성화된 경우 프레임을 무효화 하고 'paint' 이벤트를 통해 새로 만듭니다.

Instance Properties

contents.id

이 WebContents의 유일 ID.

contents.session

이 webContents에서 사용하는 session 객체를 반환합니다.

contents.hostWebContents

현재 WebContents를 소유하는 WebContents를 반환합니다.

contents.devToolsWebContents

WebContents에 대한 개발자 도구의 WebContents를 가져옵니다.

참고: 사용자가 절대로 이 객체를 저장해서는 안 됩니다. 개발자 도구가 닫혔을 때, null이 반환될 수 있습니다.

contents.debugger

현재 webContents에 대한 디버거 인스턴스를 가져옵니다.

Class: Debugger

Chrome의 원격 디버깅 프로토콜에 대한 대체 접근자입니다.

const {BrowserWindow} = require('electron')
let 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')

Instance Methods

debugger.attach([protocolVersion])

webContents에 디버거를 부착합니다.

debugger.isAttached()

디버거가 webContents에 부착되어 있는지 여부를 반환합니다.

debugger.detach()

webContents로부터 디버거를 분리시킵니다.

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

지정한 커맨드를 디버깅 대상에게 전송합니다.

Instance Events

Event: ‘detach’

디버깅 세션이 종료될 때 발생하는 이벤트입니다. webContents가 닫히거나 개발자 도구가 부착된 webContents에 대해 호출될 때 발생합니다.

Event: ‘message’

디버깅 타겟이 관련 이벤트를 발생시킬 때 마다 발생하는 이벤트입니다.


고쳐야 할 것이 있습니까? 소스에서 변경을 제안할 수 있습니다.
다른 버전의 문서가 필요한가요? 이전 버전 또는 커뮤니티 번역을 보세요.
모든 문서를 한번에 검색하고 싶으신가요? 한 페이지 문서를 보세요.