chrome.windows

설명

chrome.windows API를 사용하여 브라우저 창과 상호작용합니다. 이 API를 사용하여 브라우저에서 창을 만들고 수정하고 재정렬할 수 있습니다.

권한

요청 시 windows.Window에는 tabs.Tab 객체의 배열이 포함됩니다. 다음을 수행해야 합니다. url에 액세스해야 하는 경우 매니페스트에서 "tabs" 권한을 선언합니다. tabs.TabpendingUrl, title 또는 favIconUrl 속성. 예를 들면 다음과 같습니다.

{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}

개념 및 사용법

현재 창

확장 프로그램의 많은 함수는 선택적 windowId 인수를 사용합니다. 기본값은 현재 창

현재 창은 현재 실행 중인 코드가 포함된 창입니다. 그것은 이는 최상위 창 또는 포커스가 맞춰진 창과 다를 수 있음을 인식하는 것이 중요합니다.

예를 들어 확장 프로그램이 단일 HTML 파일에서 몇 개의 탭이나 창을 생성하고 HTML 파일에는 tabs.query() 호출이 포함되어 있습니다. 현재 창은 호출한 모든 페이지를 반환합니다.

서비스 워커의 경우 현재 기간의 값이 마지막 활성 기간으로 대체됩니다. 창 경우에 따라 백그라운드 페이지에 현재 창이 표시되지 않을 수 있습니다.

이 API를 사용하려면 chrome-extension-samples에서 Windows API 예시를 설치하세요. 저장소

<ph type="x-smartling-placeholder">
</ph> 창 2개(각각 탭 1개)
창 2개(각각 탭 1개).

유형

CreateType

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

만들 브라우저 창의 유형을 지정합니다. '패널' 지원 중단되었으며 ChromeOS의 허용 목록에 있는 기존 확장 프로그램에서만 사용할 수 있습니다.

열거형

"normal"
창을 표준 창으로 지정합니다.

"popup"
창을 팝업 창으로 지정합니다.

"panel"
창을 패널로 지정합니다.

QueryOptions

Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

속성

  • populate

    불리언 선택사항

    true인 경우 windows.Window 객체에는 tabs.Tab 객체 목록이 포함된 tabs 속성이 있습니다. 확장 프로그램의 매니페스트 파일에 "tabs" 권한이 포함된 경우 Tab 객체에는 url, pendingUrl, title, favIconUrl 속성만 포함됩니다.

  • windowTypes

    WindowType[] 선택사항

    이 매개변수를 설정하면 반환되는 windows.Window가 유형에 따라 필터링됩니다. 설정하지 않으면 기본 필터가 ['normal', 'popup']로 설정됩니다.

Window

속성

  • alwaysOnTop

    부울

    창이 항상 맨 위에 표시되도록 설정되었는지 여부입니다.

  • 집중

    부울

    창이 현재 포커스가 설정된 창인지 여부입니다.

  • 높이

    숫자 선택사항

    프레임을 포함한 창의 높이(픽셀)입니다. 경우에 따라 창에 height 속성이 할당되지 않을 수도 있습니다. sessions API에서 닫힌 창을 쿼리할 때를 예로 들 수 있습니다.

  • id

    숫자 선택사항

    창의 ID입니다. 창 ID는 브라우저 세션 내에서 고유합니다. 경우에 따라 창에 ID 속성이 할당되지 않을 수도 있습니다. 예를 들어 sessions API를 사용하여 창을 쿼리하는 경우 세션 ID가 있을 수 있습니다.

  • 시크릿 모드

    부울

    창이 시크릿 모드인지 여부입니다.

  • 왼쪽

    숫자 선택사항

    화면 왼쪽 가장자리를 기준으로 한 창 오프셋(픽셀)입니다. 경우에 따라 창에 left 속성이 할당되지 않을 수도 있습니다. sessions API에서 닫힌 창을 쿼리할 때를 예로 들 수 있습니다.

  • sessionId

    문자열(선택사항)

    창을 고유하게 식별하는 데 사용되는 세션 ID로, sessions API에서 가져옵니다.

  • WindowState 선택사항

    이 브라우저 창의 상태입니다.

  • Tab[] 선택사항

    창의 현재 탭을 나타내는 tabs.Tab 객체의 배열입니다.

  • 상단

    숫자 선택사항

    화면 상단 가장자리로부터의 창 오프셋(픽셀)입니다. 경우에 따라 창에 top 속성이 할당되지 않을 수도 있습니다. sessions API에서 닫힌 창을 쿼리할 때를 예로 들 수 있습니다.

  • 유형

    WindowType (선택사항)

    브라우저 창의 유형입니다.

  • 너비

    숫자 선택사항

    프레임을 포함한 창의 너비(픽셀)입니다. 경우에 따라 창에 width 속성이 할당되지 않을 수도 있습니다. sessions API에서 닫힌 창을 쿼리할 때를 예로 들 수 있습니다.

WindowState

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

이 브라우저 창의 상태입니다. 경우에 따라 창에 state 속성이 할당되지 않을 수도 있습니다. sessions API에서 닫힌 창을 쿼리할 때를 예로 들 수 있습니다.

열거형

"normal"
일반 창 상태 (최소화, 최대화 또는 전체 화면 아님).

"minimized"
최소화된 창 상태.

"maximized"
최대 창 상태

"fullscreen"
전체 화면 창 상태입니다.

"locked-fullscreen"
잠긴 전체 화면 창 상태입니다. 이 전체 화면 상태는 사용자 작업으로 종료할 수 없으며 Chrome OS의 허용 목록에 있는 확장 프로그램에서만 사용할 수 있습니다.

WindowType

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

브라우저 창의 유형입니다. 경우에 따라 창에 type 속성이 할당되지 않을 수도 있습니다. sessions API에서 닫힌 창을 쿼리할 때를 예로 들 수 있습니다.

열거형

"normal"
일반 브라우저 창

"popup"
브라우저 팝업

"panel"
이 API에서 지원 중단되었습니다. Chrome 앱 패널 스타일 창입니다. 확장 프로그램은 자체 패널 창만 볼 수 있습니다.

"app"
이 API에서 지원 중단되었습니다. Chrome 앱 창입니다. 확장 프로그램은 자체 창만 볼 수 있습니다.

"devtools"
개발자 도구 창

속성

WINDOW_ID_CURRENT

현재 창을 나타내는 windowId 값입니다.

-2

WINDOW_ID_NONE

Chrome 브라우저 창이 없음을 나타내는 windowId 값입니다.

-1

메서드

create()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.windows.create(
  createData?: object,
  callback?: function,
)

제공된 크기, 위치 또는 기본 URL(선택사항)을 사용하여 새 브라우저 창을 생성(열기)합니다.

매개변수

  • createData

    객체(선택사항)

    • 집중

      불리언 선택사항

      true인 경우 활성 창을 엽니다. false인 경우 비활성 창을 엽니다.

    • 높이

      숫자 선택사항

      프레임을 포함한 새 창의 높이(픽셀)입니다. 지정하지 않으면 기본값은 자연 높이입니다.

    • 시크릿 모드

      불리언 선택사항

      새 창을 시크릿 창으로 할지 여부입니다.

    • 왼쪽

      숫자 선택사항

      화면의 왼쪽 가장자리에서 새 창을 배치할 픽셀 수입니다. 지정하지 않으면 새 창은 마지막으로 포커스가 설정된 창에서 자연스럽게 오프셋됩니다. 패널에서는 이 값이 무시됩니다.

    • setSelfAsOpener

      불리언 선택사항

      Chrome 64 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

      true인 경우 새로 생성된 창의 'window.opener' 이 호출자로 설정되고 호출자와 동일한 관련 탐색 컨텍스트 단위에 있습니다.

    • WindowState 선택사항

      Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

      창의 초기 상태입니다. minimized, maximized, fullscreen 상태는 left, top, width 또는 height와 결합할 수 없습니다.

    • tabId

      숫자 선택사항

      새 창에 추가할 탭의 ID입니다.

    • 상단

      숫자 선택사항

      화면의 상단 가장자리에서 새 창을 배치할 픽셀 수입니다. 지정하지 않으면 새 창은 마지막으로 포커스가 설정된 창에서 자연스럽게 오프셋됩니다. 패널에서는 이 값이 무시됩니다.

    • 유형

      CreateType 선택사항

      만들 브라우저 창의 유형을 지정합니다.

    • URL

      string | string[] 선택사항

      창에서 탭으로 열 URL 또는 URL 배열입니다. 정규화된 URL은 스키마를 포함해야 합니다(예: 'www.google.com'이 아닌 'http://www.google.com'으로 설정합니다. 정규화된 URL이 아닌 URL은 확장 프로그램 내에서 상대적인 URL로 간주됩니다. 기본값은 새 탭 페이지입니다.

    • 너비

      숫자 선택사항

      프레임을 포함한 새 창의 너비(픽셀)입니다. 지정하지 않으면 기본 너비가 기본값으로 설정됩니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (window?: Window) => void

    • 기간 선택사항

      생성된 창에 대한 세부정보를 포함합니다.

반환 값

  • Promise&lt;Window | 정의되지 않음>

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

get()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.windows.get(
  windowId: number,
  queryOptions?: QueryOptions,
  callback?: function,
)

창에 대한 세부정보를 가져옵니다.

매개변수

  • windowId

    숫자

  • queryOptions

    QueryOptions 선택사항

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (window: Window) => void

반환 값

  • Promise&lt;Window&gt;

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getAll()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.windows.getAll(
  queryOptions?: QueryOptions,
  callback?: function,
)

모든 창을 가져옵니다.

매개변수

  • queryOptions

    QueryOptions 선택사항

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (windows: Window[]) => void

반환 값

  • Promise&lt;Window[]&gt;

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getCurrent()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.windows.getCurrent(
  queryOptions?: QueryOptions,
  callback?: function,
)

현재 창을 가져옵니다.

매개변수

  • queryOptions

    QueryOptions 선택사항

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (window: Window) => void

반환 값

  • Promise&lt;Window&gt;

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getLastFocused()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.windows.getLastFocused(
  queryOptions?: QueryOptions,
  callback?: function,
)

가장 최근에 포커스가 있었던 창을 가져옵니다(일반적으로 '위' 창).

매개변수

  • queryOptions

    QueryOptions 선택사항

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (window: Window) => void

반환 값

  • Promise&lt;Window&gt;

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

remove()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.windows.remove(
  windowId: number,
  callback?: function,
)

창과 창 내부의 모든 탭을 삭제 (닫기)합니다.

매개변수

  • windowId

    숫자

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • 프로미스<void>

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

update()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.windows.update(
  windowId: number,
  updateInfo: object,
  callback?: function,
)

창의 속성을 업데이트합니다. 변경할 속성만 지정합니다. 지정되지 않은 속성은 변경되지 않습니다.

매개변수

  • windowId

    숫자

  • updateInfo

    객체

    • drawAttention

      불리언 선택사항

      true인 경우 포커스가 맞춰진 창을 변경하지 않고 창에 사용자의 주의를 끄는 방식으로 창이 표시되도록 합니다. 이 효과는 사용자가 창에 포커스를 변경할 때까지 지속됩니다. 창에 이미 포커스가 있으면 이 옵션이 아무런 영향을 미치지 않습니다. 이전 drawAttention 요청을 취소하려면 false로 설정합니다.

    • 집중

      불리언 선택사항

      true이면 창을 앞으로 가져옵니다. '최소화된' 상태와 결합할 수 없습니다. false이면 z 순서로 다음 창을 앞으로 가져옵니다. '전체 화면' 상태와 결합할 수 없습니다. '최대화됨'이라고도 합니다

    • 높이

      숫자 선택사항

      창 크기를 조절할 높이입니다(단위: 픽셀). 패널에서는 이 값이 무시됩니다.

    • 왼쪽

      숫자 선택사항

      창을 이동할 화면 왼쪽 가장자리의 오프셋(픽셀)입니다. 패널에서는 이 값이 무시됩니다.

    • WindowState 선택사항

      창의 새 상태입니다. '최소화', '최대화' 및 '전체화면' 상태를 'left', 'top', 'width' 또는 'height'와 결합할 수 없습니다.

    • 상단

      숫자 선택사항

      창을 이동할 화면 상단 가장자리의 오프셋(픽셀)입니다. 패널에서는 이 값이 무시됩니다.

    • 너비

      숫자 선택사항

      창 크기를 조절할 너비입니다(단위: 픽셀). 패널에서는 이 값이 무시됩니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (window: Window) => void

반환 값

  • Promise&lt;Window&gt;

    Chrome 88 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

이벤트

onBoundsChanged

Chrome 86 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.windows.onBoundsChanged.addListener(
  callback: function,
)

창의 크기가 조절되면 실행됩니다. 이 이벤트는 새 경계가 커밋될 때만 전달되고 진행 중인 변경사항에 대해서는 전달되지 않습니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (window: Window) => void

onCreated

chrome.windows.onCreated.addListener(
  callback: function,
  filters?: object,
)

창이 생성될 때 실행됩니다.

매개변수

  • 콜백

    함수

    Chrome 46 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    callback 매개변수는 다음과 같습니다.

    (window: Window) => void

    • 생성된 창의 세부정보입니다.

  • 필터

    객체(선택사항)

    • windowTypes

      생성 중인 기간 유형이 충족해야 하는 조건입니다. 기본적으로 ['normal', 'popup']를 충족합니다.

onFocusChanged

chrome.windows.onFocusChanged.addListener(
  callback: function,
  filters?: object,
)

현재 포커스가 설정된 창이 변경되면 실행됩니다. 모든 Chrome 창에 포커스가 없으면 chrome.windows.WINDOW_ID_NONE를 반환합니다. 참고: 일부 Linux 창 관리자에서 WINDOW_ID_NONE는 항상 한 Chrome 창에서 다른 창으로 전환하기 직전에 전송됩니다.

매개변수

  • 콜백

    함수

    Chrome 46 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    callback 매개변수는 다음과 같습니다.

    (windowId: number) => void

    • windowId

      숫자

      새로 포커스를 맞춘 창의 ID입니다.

  • 필터

    객체(선택사항)

    • windowTypes

      삭제되는 창 유형이 충족해야 하는 조건입니다. 기본적으로 ['normal', 'popup']를 충족합니다.

onRemoved

chrome.windows.onRemoved.addListener(
  callback: function,
  filters?: object,
)

창이 삭제 (닫힘)되면 실행됩니다.

매개변수

  • 콜백

    함수

    Chrome 46 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    callback 매개변수는 다음과 같습니다.

    (windowId: number) => void

    • windowId

      숫자

      삭제된 창의 ID입니다.

  • 필터

    객체(선택사항)

    • windowTypes

      삭제되는 창 유형이 충족해야 하는 조건입니다. 기본적으로 ['normal', 'popup']를 충족합니다.