Nội dung mô tả
Sử dụng API chrome.app.window
để tạo cửa sổ. Windows có một khung không bắt buộc với thanh tiêu đề và các thành phần điều khiển kích thước. Các trình duyệt này không được liên kết với bất kỳ cửa sổ trình duyệt Chrome nào. Xem Mẫu trạng thái cửa sổ để biết minh hoạ về các tuỳ chọn này.
Loại
AppWindow
Thuộc tính
-
contentWindow
Cửa sổ
Đối tượng "cửa sổ" JavaScript cho thành phần con đã tạo.
-
id
string
Mã nhận dạng mà cửa sổ được tạo.
-
innerBounds
Vị trí, kích thước và các giới hạn của nội dung cửa sổ, không bao gồm trang trí cửa sổ. Thuộc tính này là tính năng mới trong Chrome 36.
-
outerBounds
Vị trí, kích thước và các giới hạn của cửa sổ, bao gồm cả đồ trang trí cửa sổ, chẳng hạn như thanh tiêu đề và khung. Thuộc tính này là tính năng mới trong Chrome 36.
-
clearAttention
void
Xoá sự chú ý đến cửa sổ.
Hàm
clearAttention
sẽ có dạng như sau:() => {...}
-
đóng
void
Đóng cửa sổ.
Hàm
close
sẽ có dạng như sau:() => {...}
-
drawAttention
void
Thu hút sự chú ý vào cửa sổ.
Hàm
drawAttention
sẽ có dạng như sau:() => {...}
-
tiêu điểm
void
Lấy tiêu điểm cửa sổ.
Hàm
focus
sẽ có dạng như sau:() => {...}
-
toàn màn hình
void
Toàn màn hình cửa sổ.
Người dùng sẽ có thể khôi phục cửa sổ bằng cách nhấn ESC. Một ứng dụng có thể ngăn không cho thấy trạng thái toàn màn hình khi nhấn ESC bằng cách yêu cầu quyền
app.window.fullscreen.overrideEsc
và huỷ sự kiện bằng cách gọi .ectionDefault(), trong trình xử lý phím và phím keyup, như sau:window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };
Lưu ý:
window.fullscreen()
sẽ khiến toàn bộ cửa sổ chuyển sang chế độ toàn màn hình và không yêu cầu cử chỉ của người dùng. Bạn cũng có thể sử dụng API toàn màn hình HTML5 để chuyển sang chế độ toàn màn hình (xem phần API web để biết thêm chi tiết).Hàm
fullscreen
sẽ có dạng như sau:() => {...}
-
getBounds
void
Không dùng nữaSử dụng internalBounds hoặc externalBounds.
Lấy ranh giới bên trong của cửa sổ dưới dạng đối tượng
ContentBounds
.Hàm
getBounds
sẽ có dạng như sau:() => {...}
-
giá trị trả về
-
-
ẩn
void
Ẩn cửa sổ. Không làm gì nếu cửa sổ đã bị ẩn.
Hàm
hide
sẽ có dạng như sau:() => {...}
-
isAlwaysOnTop
void
Có phải cửa sổ luôn ở trên cùng không?
Hàm
isAlwaysOnTop
sẽ có dạng như sau:() => {...}
-
giá trị trả về
boolean
-
-
isFullscreen
void
Cửa sổ có đang ở chế độ toàn màn hình không? Điều này sẽ đúng nếu cửa sổ được tạo ở chế độ toàn màn hình hoặc được đặt ở chế độ toàn màn hình thông qua API toàn màn hình
AppWindow
hoặc HTML5.Hàm
isFullscreen
sẽ có dạng như sau:() => {...}
-
giá trị trả về
boolean
-
-
isMaximized
void
Cửa sổ có được phóng to không?
Hàm
isMaximized
sẽ có dạng như sau:() => {...}
-
giá trị trả về
boolean
-
-
isMinimized
void
Cửa sổ có được thu nhỏ không?
Hàm
isMinimized
sẽ có dạng như sau:() => {...}
-
giá trị trả về
boolean
-
-
tối đa hoá
void
Phóng to cửa sổ.
Hàm
maximize
sẽ có dạng như sau:() => {...}
-
thu nhỏ
void
Thu nhỏ cửa sổ.
Hàm
minimize
sẽ có dạng như sau:() => {...}
-
moveTo
void
Không dùng nữa kể từ Chrome 43Sử dụng externalBounds.
Di chuyển cửa sổ đến vị trí (
left
,top
).Hàm
moveTo
sẽ có dạng như sau:(left: number, top: number) => {...}
-
trái
number
-
trên cùng
number
-
-
resizeTo
void
Không dùng nữa kể từ Chrome 43Sử dụng externalBounds.
Đổi kích thước cửa sổ thành có kích thước
width
xheight
pixel.Hàm
resizeTo
sẽ có dạng như sau:(width: number, height: number) => {...}
-
chiều rộng
number
-
độ cao
number
-
-
khôi phục
void
Khôi phục cửa sổ, thoát khỏi trạng thái tối đa, thu nhỏ hoặc toàn màn hình.
Hàm
restore
sẽ có dạng như sau:() => {...}
-
setAlwaysOnTop
void
Thiết lập xem cửa sổ có nên nằm phía trên hầu hết các cửa sổ khác hay không. Yêu cầu quyền
alwaysOnTopWindows
.Hàm
setAlwaysOnTop
sẽ có dạng như sau:(alwaysOnTop: boolean) => {...}
-
alwaysOnTop
boolean
-
-
setBounds
void
Không dùng nữaSử dụng internalBounds hoặc externalBounds.
Đặt giới hạn bên trong của cửa sổ.
Hàm
setBounds
sẽ có dạng như sau:(bounds: ContentBounds) => {...}
-
giới hạn
-
-
setVisibleOnAllWorkspaces
void
Thiết lập xem cửa sổ có hiển thị trên tất cả không gian làm việc hay không. (Chỉ dành cho các nền tảng hỗ trợ tính năng này).
Hàm
setVisibleOnAllWorkspaces
sẽ có dạng như sau:(alwaysVisible: boolean) => {...}
-
alwaysVisible
boolean
-
-
hiện (lên)/cho thấy
void
Hiện cửa sổ. Không làm gì cả nếu cửa sổ đã hiển thị. Lấy tiêu điểm cửa sổ nếu bạn đặt
focused
thành true hoặc bỏ qua.Hàm
show
sẽ có dạng như sau:(focused?: boolean) => {...}
-
tập trung
boolean không bắt buộc
-
Bounds
Thuộc tính
-
độ cao
number
Bạn có thể dùng thuộc tính này để đọc hoặc ghi chiều cao hiện tại của nội dung hoặc cửa sổ.
-
trái
number
Có thể dùng thuộc tính này để đọc hoặc ghi toạ độ X hiện tại của nội dung hoặc cửa sổ.
-
maxHeight
số không bắt buộc
Bạn có thể dùng thuộc tính này để đọc hoặc ghi chiều cao tối đa hiện tại của nội dung hoặc cửa sổ. Giá trị
null
biểu thị "không được chỉ định". -
maxWidth
số không bắt buộc
Bạn có thể dùng thuộc tính này để đọc hoặc ghi chiều rộng tối đa hiện tại của nội dung hoặc cửa sổ. Giá trị
null
biểu thị "không được chỉ định". -
minHeight
số không bắt buộc
Bạn có thể dùng thuộc tính này để đọc hoặc ghi chiều cao tối thiểu hiện tại của nội dung hoặc cửa sổ. Giá trị
null
biểu thị "không được chỉ định". -
minWidth
số không bắt buộc
Bạn có thể dùng thuộc tính này để đọc hoặc ghi chiều rộng tối thiểu hiện tại của nội dung hoặc cửa sổ. Giá trị
null
biểu thị "không được chỉ định". -
trên cùng
number
Bạn có thể dùng thuộc tính này để đọc hoặc ghi toạ độ Y hiện tại của nội dung hoặc cửa sổ.
-
chiều rộng
number
Bạn có thể dùng thuộc tính này để đọc hoặc ghi chiều rộng hiện tại của nội dung hoặc cửa sổ.
-
setMaximumSize
void
Thiết lập giới hạn kích thước tối đa của nội dung hoặc cửa sổ. Bạn có thể thiết lập chiều rộng hoặc chiều cao tối đa thành
null
để xoá quy tắc ràng buộc. Giá trịundefined
sẽ không thay đổi một quy tắc ràng buộc.Hàm
setMaximumSize
sẽ có dạng như sau:(maxWidth: number, maxHeight: number) => {...}
-
maxWidth
number
-
maxHeight
number
-
-
setMinimumSize
void
Thiết lập các giới hạn kích thước tối thiểu của nội dung hoặc cửa sổ. Bạn có thể thiết lập chiều rộng hoặc chiều cao tối thiểu thành
null
để xoá quy tắc ràng buộc. Giá trịundefined
sẽ không thay đổi một quy tắc ràng buộc.Hàm
setMinimumSize
sẽ có dạng như sau:(minWidth: number, minHeight: number) => {...}
-
minWidth
number
-
minHeight
number
-
-
setPosition
void
Đặt vị trí bên trái và trên cùng của nội dung hoặc cửa sổ.
Hàm
setPosition
sẽ có dạng như sau:(left: number, top: number) => {...}
-
trái
number
-
trên cùng
number
-
-
setSize
void
Đặt chiều rộng và chiều cao của nội dung hoặc cửa sổ.
Hàm
setSize
sẽ có dạng như sau:(width: number, height: number) => {...}
-
chiều rộng
number
-
độ cao
number
-
BoundsSpecification
Thuộc tính
-
độ cao
số không bắt buộc
Chiều cao của nội dung hoặc cửa sổ.
-
trái
số không bắt buộc
Toạ độ X của nội dung hoặc cửa sổ.
-
maxHeight
số không bắt buộc
Chiều cao tối đa của nội dung hoặc cửa sổ.
-
maxWidth
số không bắt buộc
Chiều rộng tối đa của nội dung hoặc cửa sổ.
-
minHeight
số không bắt buộc
Chiều cao tối thiểu của nội dung hoặc cửa sổ.
-
minWidth
số không bắt buộc
Chiều rộng tối thiểu của nội dung hoặc cửa sổ.
-
trên cùng
số không bắt buộc
Toạ độ Y của nội dung hoặc cửa sổ.
-
chiều rộng
số không bắt buộc
Chiều rộng của nội dung hoặc cửa sổ.
ContentBounds
Thuộc tính
-
độ cao
số không bắt buộc
-
trái
số không bắt buộc
-
trên cùng
số không bắt buộc
-
chiều rộng
số không bắt buộc
CreateWindowOptions
Thuộc tính
-
alwaysOnTop
boolean không bắt buộc
Nếu đặt là true, cửa sổ sẽ nằm phía trên hầu hết các cửa sổ khác. Nếu có nhiều cửa sổ thuộc loại này, thì cửa sổ hiện được lấy tiêu điểm sẽ nằm ở nền trước. Yêu cầu quyền
alwaysOnTopWindows
. Giá trị mặc định là false.Gọi
setAlwaysOnTop()
trên cửa sổ này để thay đổi thuộc tính này sau khi tạo. -
giới hạn
ContentBounds không bắt buộc
Không dùng nữaSử dụng internalBounds hoặc externalBounds.
Kích thước và vị trí của nội dung trong cửa sổ (ngoại trừ thanh tiêu đề). Nếu mã nhận dạng cũng được chỉ định và một cửa sổ có mã nhận dạng phù hợp đã hiển thị trước đó, thì các giới hạn đã ghi nhớ của cửa sổ sẽ được sử dụng.
-
tập trung
boolean không bắt buộc
Nếu đặt là true, cửa sổ sẽ được lấy tiêu điểm khi tạo. Giá trị mặc định là đúng.
-
khung
string | FrameOptions không bắt buộc
Loại khung hình:
none
hoặcchrome
(mặc định làchrome
). Đối vớinone
, bạn có thể sử dụng thuộc tính CSS-webkit-app-region
để áp dụng khả năng kéo cho cửa sổ của ứng dụng. Bạn có thể dùng-webkit-app-region: drag
để đánh dấu các khu vực có thể kéo. Có thể dùngno-drag
để tắt kiểu này trên các phần tử lồng nhau.Việc sử dụng
FrameOptions
là tính năng mới trong M36. -
boolean không bắt buộc
Nếu đúng, cửa sổ sẽ được tạo ở trạng thái ẩn. Gọi show() trên cửa sổ để hiển thị sau khi được tạo. Giá trị mặc định là false.
-
biểu tượng
chuỗi không bắt buộc
Chrome 54 trở lênURL của biểu tượng cửa sổ. Cửa sổ có thể có biểu tượng riêng khi showInShelf được đặt thành true. URL phải là một URL chung hoặc một URL cục bộ của tiện ích.
-
id
chuỗi không bắt buộc
Mã nhận dạng để xác định cửa sổ. Mã này sẽ được dùng để ghi nhớ kích thước và vị trí của cửa sổ và khôi phục hình học đó khi một cửa sổ có cùng mã nhận dạng sau đó được mở ra. Nếu một cửa sổ có một mã nhận dạng cho trước được tạo trong khi một cửa sổ khác có cùng mã nhận dạng đã tồn tại, thì cửa sổ đang mở sẽ được lấy tiêu điểm thay vì tạo một cửa sổ mới.
-
innerBounds
BoundsSpecification không bắt buộc
Dùng để chỉ định vị trí ban đầu, kích thước ban đầu và các giới hạn của nội dung cửa sổ (không bao gồm trang trí cửa sổ). Nếu
id
cũng được chỉ định và một cửa sổ cóid
phù hợp đã hiển thị trước đó, thì các giới hạn đã ghi nhớ sẽ được sử dụng.Xin lưu ý rằng khoảng đệm giữa ranh giới bên trong và bên ngoài là do hệ điều hành xác định. Do đó, việc đặt cùng một thuộc tính giới hạn cho cả
innerBounds
vàouterBounds
sẽ dẫn đến lỗi.Thuộc tính này là tính năng mới trong Chrome 36.
-
maxHeight
số không bắt buộc
Không dùng nữaSử dụng internalBounds hoặc externalBounds.
Chiều cao tối đa của cửa sổ.
-
maxWidth
số không bắt buộc
Không dùng nữaSử dụng internalBounds hoặc externalBounds.
Chiều rộng tối đa của cửa sổ.
-
minHeight
số không bắt buộc
Không dùng nữaSử dụng internalBounds hoặc externalBounds.
Chiều cao tối thiểu của cửa sổ.
-
minWidth
số không bắt buộc
Không dùng nữaSử dụng internalBounds hoặc externalBounds.
Chiều rộng tối thiểu của cửa sổ.
-
outerBounds
BoundsSpecification không bắt buộc
Dùng để chỉ định vị trí ban đầu, kích thước ban đầu và các giới hạn của cửa sổ (bao gồm cả các đồ trang trí cửa sổ như thanh tiêu đề và khung). Nếu
id
cũng được chỉ định và một cửa sổ cóid
phù hợp đã hiển thị trước đó, thì các giới hạn đã ghi nhớ sẽ được sử dụng.Xin lưu ý rằng khoảng đệm giữa ranh giới bên trong và bên ngoài là do hệ điều hành xác định. Do đó, việc đặt cùng một thuộc tính giới hạn cho cả
innerBounds
vàouterBounds
sẽ dẫn đến lỗi.Thuộc tính này là tính năng mới trong Chrome 36.
-
resizable
boolean không bắt buộc
Nếu đúng, người dùng có thể đổi kích thước cửa sổ. Giá trị mặc định là đúng.
-
showInShelf
boolean không bắt buộc
Chrome 54 trở lênNếu đặt là true, cửa sổ sẽ có biểu tượng kệ riêng. Nếu không, cửa sổ sẽ được nhóm trên kệ với các cửa sổ khác được liên kết với ứng dụng. Giá trị mặc định là false. Nếu đặt showInShelf thành true, bạn cần chỉ định mã nhận dạng cho cửa sổ.
-
singleton
boolean không bắt buộc
Không dùng nữaNhiều cửa sổ có cùng mã nhận dạng không còn được hỗ trợ nữa.
Theo mặc định, nếu bạn chỉ định một mã nhận dạng cho cửa sổ đó, cửa sổ đó sẽ chỉ được tạo nếu chưa có cửa sổ nào khác có cùng mã nhận dạng. Nếu cửa sổ có cùng mã nhận dạng đã tồn tại thì cửa sổ đó sẽ được kích hoạt. Nếu muốn tạo nhiều cửa sổ có cùng mã nhận dạng, bạn có thể đặt thuộc tính này thành false.
-
state
Trạng thái không bắt buộc
Trạng thái ban đầu của cửa sổ, cho phép tạo cửa sổ ở chế độ toàn màn hình, phóng to hoặc thu nhỏ. Giá trị mặc định là "normal" (bình thường).
-
loại
WindowType không bắt buộc
Chrome 45 trở lên Ngừng sử dụng kể từ Chrome 69Tất cả cửa sổ ứng dụng đều sử dụng loại cửa sổ "shell" (lớp vỏ)
Loại cửa sổ cần tạo.
-
visibleOnAllWorkspaces
boolean không bắt buộc
Nếu đúng và được nền tảng hỗ trợ, cửa sổ này sẽ hiển thị trên tất cả không gian làm việc.
FrameOptions
Thuộc tính
-
activeColor
chuỗi không bắt buộc
Cho phép đặt màu khung của cửa sổ khi cửa sổ hoạt động. Bạn chỉ có thể dùng tính năng tô màu khung hình nếu loại khung là
chrome
.Bạn chỉ có thể dùng tính năng tô màu khung hình nếu loại khung là
chrome
.Tô màu khung là tính năng mới trong Chrome 36.
-
màu
chuỗi không bắt buộc
Cho phép đặt màu khung. Bạn chỉ có thể dùng tính năng tô màu khung hình nếu loại khung là
chrome
.Tô màu khung là tính năng mới trong Chrome 36.
-
inactiveColor
chuỗi không bắt buộc
Cho phép đặt màu khung khác với màu hoạt động của cửa sổ khi không hoạt động. Bạn chỉ có thể dùng tính năng tô màu khung hình nếu loại khung là
chrome
.Bạn phải dùng
inactiveColor
cùng vớicolor
.Tô màu khung là tính năng mới trong Chrome 36.
-
loại
chuỗi không bắt buộc
Loại khung hình:
none
hoặcchrome
(mặc định làchrome
).Đối với
none
, bạn có thể dùng thuộc tính CSS-webkit-app-region
để áp dụng khả năng kéo vào cửa sổ của ứng dụng.Bạn có thể dùng
-webkit-app-region: drag
để đánh dấu các khu vực có thể kéo. Có thể dùngno-drag
để tắt kiểu này trên các phần tử lồng nhau.
State
Trạng thái của cửa sổ: bình thường, toàn màn hình, phóng to, thu nhỏ.
Liệt kê
WindowType
Chỉ định loại cửa sổ cần tạo.
Liệt kê
"shell"
Loại cửa sổ mặc định.
"panel"
Cửa sổ do hệ điều hành quản lý (Không dùng nữa).
Phương thức
canSetVisibleOnAllWorkspaces()
chrome.app.window.canSetVisibleOnAllWorkspaces()
Liệu nền tảng hiện tại có hỗ trợ các cửa sổ hiển thị trên tất cả không gian làm việc hay không.
Giá trị trả về
-
boolean
create()
chrome.app.window.create(
url: string,
options?: CreateWindowOptions,
callback?: function,
)
Bạn có thể chỉ định kích thước và vị trí của cửa sổ theo một số cách. Lựa chọn đơn giản nhất là hoàn toàn không chỉ định bất kỳ thông tin nào. Trong trường hợp đó, hệ thống sẽ sử dụng kích thước mặc định và vị trí phụ thuộc vào nền tảng.
Để đặt vị trí, kích thước và các điều kiện ràng buộc của cửa sổ, hãy dùng thuộc tính innerBounds
hoặc outerBounds
. Giới hạn bên trong không bao gồm phần trang trí cửa sổ. Các giới hạn bên ngoài bao gồm khung và thanh tiêu đề của cửa sổ. Xin lưu ý rằng khoảng đệm giữa ranh giới bên trong và bên ngoài là do hệ điều hành xác định. Do đó, việc đặt cùng một thuộc tính cho cả giới hạn trong và ngoài bị coi là lỗi (ví dụ: đặt cả innerBounds.left
và outerBounds.left
).
Để tự động ghi nhớ vị trí của các cửa sổ, bạn có thể cung cấp mã nhận dạng cho các cửa sổ đó. Nếu cửa sổ có mã nhận dạng, mã nhận dạng này sẽ được dùng để ghi nhớ kích thước và vị trí của cửa sổ mỗi khi cửa sổ bị di chuyển hoặc đổi kích thước. Sau đó, kích thước và vị trí này sẽ được dùng thay cho các giới hạn được chỉ định khi mở một cửa sổ tiếp theo có cùng mã nhận dạng. Nếu cần mở cửa sổ có mã nhận dạng tại vị trí khác với vị trí mặc định đã ghi nhớ, bạn có thể tạo cửa sổ ẩn, di chuyển cửa sổ đến vị trí mong muốn rồi hiện cửa sổ đó.
Tham số
-
url
string
-
tùy chọn
CreateWindowOptions không bắt buộc
-
số gọi lại
hàm không bắt buộc
Tham số
callback
sẽ có dạng như sau:(createdWindow: AppWindow) => void
-
createdWindow
-
Giá trị trả về
-
Promise<AppWindow>
Chrome 117 trở lênLời hứa chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.
current()
chrome.app.window.current()
Trả về một đối tượng AppWindow
cho ngữ cảnh tập lệnh hiện tại (tức là đối tượng "window" JavaScript). Lệnh này cũng có thể được gọi trên ô điều khiển ngữ cảnh tập lệnh cho một trang khác, ví dụ: otherWindow.chrome.app.window.current().
Giá trị trả về
-
AppWindow | không xác định
get()
chrome.app.window.get(
id: string,
)
Nhận AppWindow
với mã nhận dạng đã cho. Nếu không có cửa sổ nào có mã nhận dạng đã cho tồn tại, giá trị rỗng sẽ được trả về. Đây là phương pháp mới trong Chrome 33.
Tham số
-
id
string
Giá trị trả về
-
AppWindow | không xác định
getAll()
chrome.app.window.getAll()
Lấy một mảng gồm tất cả các cửa sổ ứng dụng hiện đã tạo. Đây là phương pháp mới trong Chrome 33.
Giá trị trả về
Sự kiện
onBoundsChanged
chrome.app.window.onBoundsChanged.addListener(
callback: function,
)
Được kích hoạt khi cửa sổ được đổi kích thước.
Tham số
-
số gọi lại
hàm
Tham số
callback
sẽ có dạng như sau:() => void
onClosed
chrome.app.window.onClosed.addListener(
callback: function,
)
Được kích hoạt khi cửa sổ đóng. Lưu ý: Bạn nên nghe bài hát này từ một cửa sổ khác với cửa sổ đang đóng, ví dụ như từ trang nền. Lý do là cửa sổ đang đóng sẽ bị phá vỡ khi sự kiện được kích hoạt, có nghĩa là không phải tất cả API trong ngữ cảnh tập lệnh của cửa sổ đều hoạt động.
Tham số
-
số gọi lại
hàm
Tham số
callback
sẽ có dạng như sau:() => void
onFullscreened
chrome.app.window.onFullscreened.addListener(
callback: function,
)
Được kích hoạt khi cửa sổ ở chế độ toàn màn hình (thông qua API AppWindow
hoặc HTML5).
Tham số
-
số gọi lại
hàm
Tham số
callback
sẽ có dạng như sau:() => void
onMaximized
chrome.app.window.onMaximized.addListener(
callback: function,
)
Được kích hoạt khi cửa sổ được phóng to.
Tham số
-
số gọi lại
hàm
Tham số
callback
sẽ có dạng như sau:() => void
onMinimized
chrome.app.window.onMinimized.addListener(
callback: function,
)
Được kích hoạt khi cửa sổ được thu nhỏ.
Tham số
-
số gọi lại
hàm
Tham số
callback
sẽ có dạng như sau:() => void
onRestored
chrome.app.window.onRestored.addListener(
callback: function,
)
Được kích hoạt khi cửa sổ được khôi phục khỏi trạng thái thu nhỏ hoặc phóng to.
Tham số
-
số gọi lại
hàm
Tham số
callback
sẽ có dạng như sau:() => void