chrome.windows (original) (raw)

คำอธิบาย

ใช้ chrome.windows API เพื่อโต้ตอบกับหน้าต่างเบราว์เซอร์ คุณสามารถใช้ API นี้เพื่อสร้าง แก้ไข และจัดเรียงหน้าต่างในเบราว์เซอร์ได้

สิทธิ์

เมื่อมีการขอ windows.Window จะมีอาร์เรย์ของออบเจ็กต์ tabs.Tab คุณต้องประกาศสิทธิ์ "tabs" ใน ไฟล์ Manifest หากต้องการเข้าถึงพร็อพเพอร์ตี้ url, pendingUrl, title หรือ favIconUrl ของ tabs.Tab เช่น

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

แนวคิดและการใช้งาน

หน้าต่างปัจจุบัน

ฟังก์ชันหลายอย่างในระบบส่วนขยายใช้อาร์กิวเมนต์ windowId ที่ไม่บังคับ ซึ่งมีค่าเริ่มต้นเป็น หน้าต่างปัจจุบัน

_หน้าต่างปัจจุบัน_คือหน้าต่างที่มีโค้ดที่กำลังดำเนินการอยู่ คุณควรทราบว่าหน้าต่างนี้อาจแตกต่างจากหน้าต่างบนสุดหรือหน้าต่างที่โฟกัส

เช่น สมมติว่าส่วนขยายสร้างแท็บหรือหน้าต่าง 2-3 รายการจากไฟล์ HTML ไฟล์เดียว และไฟล์ HTML มีการเรียกใช้ tabs.query() หน้าต่างปัจจุบันคือหน้าต่างที่มีหน้าเว็บที่ทำการเรียก ไม่ว่าหน้าต่างบนสุดจะเป็นอะไรก็ตาม

ในกรณีของ Service Worker ค่าของหน้าต่างปัจจุบันจะกลับไปเป็นหน้าต่างที่ใช้งานล่าสุด ในบางกรณี อาจไม่มีหน้าต่างปัจจุบันสำหรับหน้าพื้นหลัง

ตัวอย่าง

หากต้องการลองใช้ API นี้ ให้ติดตั้งตัวอย่าง API ของ Windows จากที่เก็บchrome-extension-samples

2 หน้าต่าง โดยแต่ละหน้าต่างมี 1 แท็บ

2 หน้าต่าง แต่ละหน้าต่างมี 1 แท็บ

ประเภท

CreateType

ระบุประเภทหน้าต่างเบราว์เซอร์ที่จะสร้าง เลิกใช้งาน "panel" แล้ว และจะใช้ได้เฉพาะกับส่วนขยายที่มีอยู่ในรายการที่อนุญาตใน ChromeOS เท่านั้น

ค่าแจกแจง

"normal"
ระบุหน้าต่างเป็นหน้าต่างมาตรฐาน

"ป๊อปอัป"
ระบุหน้าต่างเป็นหน้าต่างป๊อปอัป

"panel"
ระบุหน้าต่างเป็นแผง

QueryOptions

พร็อพเพอร์ตี้

Window

พร็อพเพอร์ตี้

WindowState

สถานะของหน้าต่างเบราว์เซอร์นี้ ในบางกรณี ระบบอาจไม่กำหนดพร็อพเพอร์ตี้ state ให้กับหน้าต่าง เช่น เมื่อค้นหาหน้าต่างที่ปิดจาก API sessions

ค่าแจกแจง

"normal"
สถานะหน้าต่างปกติ (ไม่ได้ย่อ ขยาย หรือเต็มหน้าจอ)

"ย่อ"
สถานะหน้าต่างที่ย่อ

"ขยาย"
สถานะหน้าต่างที่ขยาย

"fullscreen"
สถานะหน้าต่างแบบเต็มหน้าจอ

"locked-fullscreen"
สถานะหน้าต่างแบบเต็มหน้าจอที่ล็อก ผู้ใช้ไม่สามารถออกจากสถานะเต็มหน้าจอนี้ได้ และจะใช้ได้เฉพาะกับส่วนขยายในรายการที่อนุญาตใน Chrome OS เท่านั้น

WindowType

ประเภทหน้าต่างเบราว์เซอร์ ในบางกรณี ระบบอาจไม่กำหนดพร็อพเพอร์ตี้ type ให้กับหน้าต่าง เช่น เมื่อค้นหาหน้าต่างที่ปิดจาก API sessions

ค่าแจกแจง

"normal"
หน้าต่างเบราว์เซอร์ปกติ

"ป๊อปอัป"
ป๊อปอัปของเบราว์เซอร์

"panel"
เลิกใช้งานแล้วใน API นี้ หน้าต่างสไตล์แผงแอป Chrome ส่วนขยายจะเห็นได้เฉพาะหน้าต่างแผงของตัวเองเท่านั้น

"แอป"
เลิกใช้งานแล้วใน API นี้ หน้าต่างแอป Chrome ส่วนขยายจะเห็นได้เฉพาะหน้าต่างของแอปของตัวเองเท่านั้น

"devtools"
หน้าต่างเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์

พร็อพเพอร์ตี้

WINDOW_ID_NONE

ค่า windowId ที่แสดงถึงการไม่มีหน้าต่างเบราว์เซอร์ Chrome

เมธอด

create()

chrome.windows.create(
  createData?: object,
): Promise<Window | undefined>

สร้าง (เปิด) หน้าต่างเบราว์เซอร์ใหม่พร้อมการปรับขนาด ตำแหน่ง หรือ URL เริ่มต้นที่เลือกได้

พารามิเตอร์

การคืนสินค้า

get()

chrome.windows.get(
  windowId: number,
  queryOptions?: QueryOptions,
): Promise<Window>

รับรายละเอียดเกี่ยวกับหน้าต่าง

พารามิเตอร์

การคืนสินค้า

getAll()

chrome.windows.getAll(
  queryOptions?: QueryOptions,
): Promise<Window[]>

รับหน้าต่างทั้งหมด

พารามิเตอร์

การคืนสินค้า

พารามิเตอร์

การคืนสินค้า

getLastFocused()

chrome.windows.getLastFocused(
  queryOptions?: QueryOptions,
): Promise<Window>

รับหน้าต่างที่โฟกัสล่าสุด ซึ่งโดยปกติคือหน้าต่าง "ด้านบน"

พารามิเตอร์

การคืนสินค้า

remove()

chrome.windows.remove(
  windowId: number,
): Promise

ปิดหน้าต่างและแท็บทั้งหมดในหน้าต่างนั้น

พารามิเตอร์

การคืนสินค้า

update()

chrome.windows.update(
  windowId: number,
  updateInfo: object,
): Promise<Window>

อัปเดตพร็อพเพอร์ตี้ของหน้าต่าง ระบุเฉพาะพร็อพเพอร์ตี้ที่จะเปลี่ยนแปลง ส่วนพร็อพเพอร์ตี้ที่ไม่ได้ระบุจะไม่มีการเปลี่ยนแปลง

พารามิเตอร์

การคืนสินค้า

กิจกรรม

onBoundsChanged

chrome.windows.onBoundsChanged.addListener(
  callback: function,
)

ทริกเกอร์เมื่อมีการปรับขนาดหน้าต่าง เหตุการณ์นี้จะส่งก็ต่อเมื่อมีการคอมมิตขอบเขตใหม่ และไม่ใช่สำหรับการเปลี่ยนแปลงที่กำลังดำเนินการ

พารามิเตอร์

onCreated

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

เริ่มทำงานเมื่อมีการสร้างหน้าต่าง

พารามิเตอร์

onFocusChanged

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

ทริกเกอร์เมื่อหน้าต่างที่โฟกัสในปัจจุบันมีการเปลี่ยนแปลง แสดงผล chrome.windows.WINDOW_ID_NONE หากหน้าต่าง Chrome ทั้งหมดไม่ได้โฟกัส หมายเหตุ: ในโปรแกรมจัดการหน้าต่าง Linux บางโปรแกรม ระบบจะส่ง WINDOW_ID_NONE เสมอทันทีก่อนที่จะเปลี่ยนจากหน้าต่าง Chrome หนึ่งไปยังอีกหน้าต่างหนึ่ง

พารามิเตอร์

onRemoved

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

เริ่มทำงานเมื่อนำหน้าต่างออก (ปิด)

พารามิเตอร์