ScreenDetails

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Giao diện ScreenDetails của Window Management API đại diện cho thông tin chi tiết về tất cả các màn hình có sẵn cho thiết bị của người dùng.

Thông tin này được truy cập qua phương thức Window.getScreenDetails().

Note: ScreenDetails là một đối tượng trực tiếp, có nghĩa là nó cập nhật khi các màn hình có sẵn thay đổi. Do đó, bạn có thể tiếp tục truy vấn cùng một đối tượng để nhận các giá trị cập nhật, thay vì gọi getScreenDetails() nhiều lần.

EventTarget ScreenDetails

Thuộc tính phiên bản

Kế thừa thuộc tính từ đối tượng cha, EventTarget.

currentScreen Read only Thử nghiệm

Một đối tượng ScreenDetailed đơn đại diện cho thông tin chi tiết về màn hình mà cửa sổ trình duyệt hiện tại đang hiển thị.

screens Read only Thử nghiệm

Một mảng các đối tượng ScreenDetailed, mỗi đối tượng đại diện cho thông tin chi tiết về một màn hình cụ thể có sẵn cho thiết bị của người dùng.

Note: screens chỉ bao gồm các màn hình "mở rộng", không bao gồm những màn hình phản chiếu màn hình khác.

Sự kiện

currentscreenchange Thử nghiệm

Được kích hoạt khi màn hình hiện tại của cửa sổ thay đổi theo cách nào đó, ví dụ: chiều rộng hoặc chiều cao có sẵn, hoặc hướng.

screenschange Thử nghiệm

Được kích hoạt khi màn hình được kết nối hoặc ngắt kết nối khỏi hệ thống.

Ví dụ

Note: Xem Multi-window learning environment để có ví dụ đầy đủ (xem thêm mã nguồn).

Truy cập thông tin màn hình cơ bản

Khi Window.getScreenDetails() được gọi, người dùng sẽ được yêu cầu cấp quyền quản lý cửa sổ trên tất cả các màn hình của họ (trạng thái quyền này có thể kiểm tra bằng Permissions.query() để truy vấn window-management). Nếu người dùng cấp quyền, một đối tượng ScreenDetails sẽ được trả về. Đối tượng này chứa thông tin chi tiết về tất cả các màn hình có sẵn cho hệ thống của người dùng.

Ví dụ dưới đây mở một cửa sổ toàn màn hình trên mỗi màn hình có sẵn.

js
const screenDetails = await window.getScreenDetails();

// Mở một cửa sổ trên mỗi màn hình của thiết bị
for (const screen of screenDetails.screens) {
  openWindow(
    screen.availLeft,
    screen.availTop,
    screen.availWidth,
    screen.availHeight,
    url,
  );
}

Phản hồi với các thay đổi trong màn hình có sẵn

Bạn có thể dùng sự kiện screenschange để phát hiện khi màn hình có sẵn thay đổi (có thể khi màn hình được cắm vào hoặc rút ra), báo cáo sự thay đổi và cập nhật sắp xếp cửa sổ để phù hợp với cấu hình mới:

js
const screenDetails = await window.getScreenDetails();

// Trả về số lượng màn hình
let noOfScreens = screenDetails.screens.length;

screenDetails.addEventListener("screenschange", () => {
  // Nếu số màn hình mới khác với số màn hình cũ, báo cáo sự khác biệt
  if (screenDetails.screens.length !== noOfScreens) {
    console.log(
      `The screen count changed from ${noOfScreens} to ${screenDetails.screens.length}`,
    );

    // Cập nhật giá trị noOfScreens
    noOfScreens = screenDetails.screens.length;
  }

  // Mở, đóng hoặc sắp xếp lại cửa sổ khi cần để phù hợp với cấu hình màn hình mới
  updateWindows();
});

Thông số kỹ thuật

Thông số kỹ thuật
Window Management
# api-screendetails-interface

Tương thích trình duyệt

Xem thêm