תיאור
משתמשים ב-API chrome.app.window
כדי ליצור חלונות. לחלונות יש מסגרת אופציונלית עם סרגל כותרת ואמצעי בקרה לשינוי הגודל. הם לא משויכים לאף חלון של דפדפן Chrome. אפשר לראות הדגמה של האפשרויות האלה בדוגמה של מצב החלון.
סוגים
AppWindow
מאפיינים
-
contentWindow
חלון
אובייקט ה-JavaScript 'window' עבור החלון המשני שנוצר.
-
id [מזהה]
מחרוזת
המזהה שבאמצעותו נוצר החלון.
-
innerBounds
המיקום, הגודל והאילוצים של תוכן החלון, שלא כולל את הקישוטים של החלון. המאפיין הזה חדש בגרסה 36 של Chrome.
-
outerBounds
המיקום, הגודל והאילוצים של החלון, כולל קישוטים כמו סרגל הכותרת והמסגרת. המאפיין הזה חדש בגרסה 36 של Chrome.
-
clearAttention
void
ניקוי ההתמקדות בחלון.
הפונקציה
clearAttention
נראית כך:() => {...}
-
סגירה
void
סגור את החלון.
הפונקציה
close
נראית כך:() => {...}
-
drawAttention
void
למשוך את תשומת הלב לחלון.
הפונקציה
drawAttention
נראית כך:() => {...}
-
מיקוד
void
להעביר את המיקוד לחלון.
הפונקציה
focus
נראית כך:() => {...}
-
מסך מלא
void
החלון יוצג במסך מלא.
המשתמש יוכל לשחזר את החלון בלחיצה על מקש ESC. אפליקציה יכולה למנוע יציאה ממצב מסך מלא כשלוחצים על מקש ESC על ידי בקשת ההרשאה
app.window.fullscreen.overrideEsc
וביטול האירוע באמצעות קריאה ל-preventDefault() במטפלים keydown ו-keyup, באופן הבא:window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };
הערה:
window.fullscreen()
יגרום להצגת החלון כולו במסך מלא, ולא נדרשת תנועת משתמש. אפשר להשתמש גם ב-HTML5 fullscreen API כדי לעבור למצב מסך מלא (פרטים נוספים זמינים במאמר בנושא Web APIs).הפונקציה
fullscreen
נראית כך:() => {...}
-
getBounds
void
הוצא משימושמשתמשים ב-innerBounds או ב-outerBounds.
אחזור הגבולות הפנימיים של החלון כאובייקט
ContentBounds
.הפונקציה
getBounds
נראית כך:() => {...}
-
החזרות
-
-
הסתר
void
להסתיר את החלון. אם החלון כבר מוסתר, לא קורה כלום.
הפונקציה
hide
נראית כך:() => {...}
-
isAlwaysOnTop
void
החלון תמיד מוצג בחזית?
הפונקציה
isAlwaysOnTop
נראית כך:() => {...}
-
החזרות
בוליאני
-
-
isFullscreen
void
החלון במסך מלא? הערך יהיה True אם החלון נוצר במסך מלא או אם הוא הוגדר למסך מלא באמצעות
AppWindow
או ממשקי API של HTML5 למסך מלא.הפונקציה
isFullscreen
נראית כך:() => {...}
-
החזרות
בוליאני
-
-
isMaximized
void
האם החלון מוגדל?
הפונקציה
isMaximized
נראית כך:() => {...}
-
החזרות
בוליאני
-
-
isMinimized
void
האם החלון ממוזער?
הפונקציה
isMinimized
נראית כך:() => {...}
-
החזרות
בוליאני
-
-
הגדלה
void
מגדילים את החלון.
הפונקציה
maximize
נראית כך:() => {...}
-
מזעור
void
ממזערים את החלון.
הפונקציה
minimize
נראית כך:() => {...}
-
moveTo
void
הוצא משימוש מאז Chrome 43משתמשים ב-outerBounds.
העברת החלון למיקום (
left
,top
).הפונקציה
moveTo
נראית כך:(left: number, top: number) => {...}
-
שמאלה
number
-
עליון
number
-
-
resizeTo
void
הוצא משימוש מאז Chrome 43משתמשים ב-outerBounds.
משנים את גודל החלון ל-
width
xheight
פיקסלים.הפונקציה
resizeTo
נראית כך:(width: number, height: number) => {...}
-
רוחב
number
-
גובה
number
-
-
שחזור
void
שחזור החלון, יציאה ממצב מוגדל, ממוזער או מסך מלא.
הפונקציה
restore
נראית כך:() => {...}
-
setAlwaysOnTop
void
הגדרה אם החלון צריך להישאר מעל רוב החלונות האחרים. נדרשת ההרשאה
alwaysOnTopWindows
.הפונקציה
setAlwaysOnTop
נראית כך:(alwaysOnTop: boolean) => {...}
-
alwaysOnTop
בוליאני
-
-
setBounds
void
הוצא משימושמשתמשים ב-innerBounds או ב-outerBounds.
הגדרת הגבולות הפנימיים של החלון.
הפונקציה
setBounds
נראית כך:(bounds: ContentBounds) => {...}
-
גבולות
-
-
setVisibleOnAllWorkspaces
void
הגדרה אם החלון גלוי בכל סביבות העבודה. (רק בפלטפורמות שתומכות בכך).
הפונקציה
setVisibleOnAllWorkspaces
נראית כך:(alwaysVisible: boolean) => {...}
-
alwaysVisible
בוליאני
-
-
הצג
void
להציג את החלון. אם החלון כבר גלוי, לא קורה כלום. החלון יתמקד אם
focused
מוגדר כ-true או אם הוא לא מוגדר.הפונקציה
show
נראית כך:(focused?: boolean) => {...}
-
ממוקד
boolean אופציונלי
-
Bounds
מאפיינים
-
גובה
number
אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את הגובה הנוכחי של התוכן או החלון.
-
שמאלה
number
אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את קואורדינטת ה-X הנוכחית של התוכן או החלון.
-
maxHeight
מספר אופציונלי
אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את הגובה המקסימלי הנוכחי של התוכן או החלון. הערך
null
מציין 'לא צוין'. -
maxWidth
מספר אופציונלי
אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את הרוחב המקסימלי הנוכחי של התוכן או החלון. הערך
null
מציין 'לא צוין'. -
minHeight
מספר אופציונלי
אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את הגובה המינימלי הנוכחי של התוכן או החלון. הערך
null
מציין 'לא צוין'. -
minWidth
מספר אופציונלי
אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את הרוחב המינימלי הנוכחי של התוכן או החלון. הערך
null
מציין 'לא צוין'. -
עליון
number
אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את קואורדינטת ה-Y הנוכחית של התוכן או החלון.
-
רוחב
number
אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את הרוחב הנוכחי של התוכן או החלון.
-
setMaximumSize
void
הגדרת אילוצי הגודל המקסימלי של התוכן או החלון. אפשר להגדיר את הרוחב או הגובה המקסימליים ל-
null
כדי להסיר את ההגבלה. הערךundefined
לא ישנה את האילוץ.הפונקציה
setMaximumSize
נראית כך:(maxWidth: number, maxHeight: number) => {...}
-
maxWidth
number
-
maxHeight
number
-
-
setMinimumSize
void
מגדירים את אילוצי הגודל המינימליים של התוכן או החלון. אפשר להגדיר את הרוחב או הגובה המינימליים ל-
null
כדי להסיר את ההגבלה. הערךundefined
לא ישנה את האילוץ.הפונקציה
setMinimumSize
נראית כך:(minWidth: number, minHeight: number) => {...}
-
minWidth
number
-
minHeight
number
-
-
setPosition
void
הגדרת המיקום השמאלי והעליון של התוכן או החלון.
הפונקציה
setPosition
נראית כך:(left: number, top: number) => {...}
-
שמאלה
number
-
עליון
number
-
-
setSize
void
הגדרת הרוחב והגובה של התוכן או החלון.
הפונקציה
setSize
נראית כך:(width: number, height: number) => {...}
-
רוחב
number
-
גובה
number
-
BoundsSpecification
מאפיינים
-
גובה
מספר אופציונלי
גובה התוכן או החלון.
-
שמאלה
מספר אופציונלי
הקואורדינטה X של התוכן או החלון.
-
maxHeight
מספר אופציונלי
הגובה המקסימלי של התוכן או החלון.
-
maxWidth
מספר אופציונלי
הרוחב המקסימלי של התוכן או החלון.
-
minHeight
מספר אופציונלי
הגובה המינימלי של התוכן או החלון.
-
minWidth
מספר אופציונלי
הרוחב המינימלי של התוכן או החלון.
-
עליון
מספר אופציונלי
הקואורדינטה Y של התוכן או החלון.
-
רוחב
מספר אופציונלי
רוחב התוכן או החלון.
ContentBounds
מאפיינים
-
גובה
מספר אופציונלי
-
שמאלה
מספר אופציונלי
-
עליון
מספר אופציונלי
-
רוחב
מספר אופציונלי
CreateWindowOptions
מאפיינים
-
alwaysOnTop
boolean אופציונלי
אם הערך הוא True, החלון יישאר מעל רוב החלונות האחרים. אם יש כמה חלונות כאלה, החלון שמוצג כרגע יהיה בחזית. נדרשת ההרשאה
alwaysOnTopWindows
. ברירת המחדל היא False.אפשר להתקשר אל
setAlwaysOnTop()
בחלון כדי לשנות את המאפיין הזה אחרי היצירה. -
גבולות
ContentBounds אופציונלי
הוצא משימושמשתמשים ב-innerBounds או ב-outerBounds.
הגודל והמיקום של התוכן בחלון (לא כולל את סרגל הכותרת). אם מציינים גם מזהה, והוצג בעבר חלון עם מזהה תואם, המערכת תשתמש במקום זאת בגבולות הזכורים של החלון.
-
ממוקד
boolean אופציונלי
אם הערך הוא true, החלון יתמקד כשהוא ייווצר. ברירת המחדל היא True.
-
פריים
string | FrameOptions אופציונלי
סוג המסגרת:
none
אוchrome
(ברירת המחדל היאchrome
). אם בוחרים באפשרותnone
, אפשר להשתמש במאפיין-webkit-app-region
CSS כדי להחיל יכולת גרירה על חלון האפליקציה. אפשר להשתמש ב--webkit-app-region: drag
כדי לסמן אזורים שניתן לגרור. אפשר להשתמש ב-no-drag
כדי להשבית את הסגנון הזה ברכיבים מוטמעים.השימוש ב-
FrameOptions
הוא חדש ב-M36. -
boolean אופציונלי
אם הערך הוא true, החלון ייווצר במצב מוסתר. אחרי שיוצרים את החלון, קוראים לפונקציה show() בחלון כדי להציג אותו. ברירת המחדל היא False.
-
סימן השאלה
מחרוזת אופציונלי
Chrome 54 ואילךכתובת ה-URL של סמל החלון. אם הערך של showInShelf הוא true, לחלון יכול להיות סמל משלו. כתובת ה-URL צריכה להיות כתובת גלובלית או כתובת מקומית של תוסף.
-
id [מזהה]
מחרוזת אופציונלי
מזהה לזיהוי החלון. הערך הזה ישמש לשמירת הגודל והמיקום של החלון ולשחזור הגיאומטריה הזו כשחלון עם אותו מזהה ייפתח מאוחר יותר. אם חלון עם מזהה מסוים נוצר בזמן שחלון אחר עם אותו מזהה כבר קיים, המערכת תתמקד בחלון הפתוח במקום ליצור חלון חדש.
-
innerBounds
BoundsSpecification אופציונלי
משמש לציון המיקום ההתחלתי, הגודל ההתחלתי והאילוצים של תוכן החלון (לא כולל את קישוטי החלון). אם מציינים גם
id
וגם חלון עםid
תואם הוצג בעבר, המערכת תשתמש בגבולות שזכורים לה.שימו לב שהריווח הפנימי בין הגבולות הפנימיים והחיצוניים נקבע על ידי מערכת ההפעלה. לכן, הגדרת אותו מאפיין גבולות גם ל-
innerBounds
וגם ל-outerBounds
תגרום לשגיאה.המאפיין הזה חדש בגרסה 36 של Chrome.
-
maxHeight
מספר אופציונלי
הוצא משימושמשתמשים ב-innerBounds או ב-outerBounds.
הגובה המקסימלי של החלון.
-
maxWidth
מספר אופציונלי
הוצא משימושמשתמשים ב-innerBounds או ב-outerBounds.
הרוחב המקסימלי של החלון.
-
minHeight
מספר אופציונלי
הוצא משימושמשתמשים ב-innerBounds או ב-outerBounds.
הגובה המינימלי של החלון.
-
minWidth
מספר אופציונלי
הוצא משימושמשתמשים ב-innerBounds או ב-outerBounds.
הרוחב המינימלי של החלון.
-
outerBounds
BoundsSpecification אופציונלי
משמש לציון המיקום ההתחלתי, הגודל ההתחלתי והאילוצים של החלון (כולל עיטורי חלון כמו שורת הכותרת והמסגרת). אם מציינים גם
id
וגם חלון עםid
תואם הוצג בעבר, המערכת תשתמש בגבולות שזכורים לה.שימו לב שהריווח הפנימי בין הגבולות הפנימיים והחיצוניים נקבע על ידי מערכת ההפעלה. לכן, הגדרת אותו מאפיין גבולות גם ל-
innerBounds
וגם ל-outerBounds
תגרום לשגיאה.המאפיין הזה חדש בגרסה 36 של Chrome.
-
ניתן לשינוי גודל
boolean אופציונלי
אם הערך הוא true, המשתמש יוכל לשנות את גודל החלון. ברירת המחדל היא True.
-
showInShelf
boolean אופציונלי
Chrome 54 ואילךאם הערך הוא True, לחלון יהיה סמל משלו במדף. אחרת, החלון יקובץ במדף עם חלונות אחרים שמשויכים לאפליקציה. ברירת המחדל היא false. אם המאפיין showInShelf מוגדר כ-true, צריך לציין מזהה לחלון.
-
singleton
boolean אופציונלי
הוצא משימושכבר אין תמיכה בכמה חלונות עם אותו מזהה.
כברירת מחדל, אם מציינים מזהה לחלון, החלון ייווצר רק אם לא קיים כבר חלון אחר עם אותו מזהה. אם כבר קיים חלון עם אותו מזהה, החלון הזה יופעל במקום זאת. אם אתם רוצים ליצור כמה חלונות עם אותו מזהה, אתם יכולים להגדיר את המאפיין הזה כ-false.
-
הסמוי הסופי
מדינה אופציונלי
המצב ההתחלתי של החלון, שמאפשר ליצור אותו כבר במסך מלא, במצב מוגדל או במצב ממוזער. ברירת המחדל היא 'normal'.
-
סוג
WindowType אופציונלי
Chrome 45+ הוצא משימוש מאז Chrome 69כל החלונות של האפליקציות משתמשים בסוג החלון 'shell'
סוג החלון שרוצים ליצור.
-
visibleOnAllWorkspaces
boolean אופציונלי
אם הערך הוא true והפלטפורמה תומכת בכך, החלון יהיה גלוי בכל סביבות העבודה.
FrameOptions
מאפיינים
-
activeColor
מחרוזת אופציונלי
מאפשר להגדיר את צבע המסגרת של החלון כשהוא פעיל. האפשרות לצביעת המסגרת זמינה רק אם סוג המסגרת הוא
chrome
.האפשרות לצביעת המסגרת זמינה רק אם סוג המסגרת הוא
chrome
.הוספנו ל-Chrome 36 צביעה של מסגרות.
-
צבע
מחרוזת אופציונלי
מאפשר להגדיר את צבע המסגרת. האפשרות לצביעת המסגרת זמינה רק אם סוג המסגרת הוא
chrome
.הוספנו ל-Chrome 36 צביעה של מסגרות.
-
inactiveColor
מחרוזת אופציונלי
מאפשר להגדיר צבע שונה למסגרת של חלון לא פעיל לעומת צבע המסגרת של חלון פעיל. האפשרות לצביעת המסגרת זמינה רק אם סוג המסגרת הוא
chrome
.צריך להשתמש ב
inactiveColor
בשילוב עםcolor
.הוספנו ל-Chrome 36 צביעה של מסגרות.
-
סוג
מחרוזת אופציונלי
סוג המסגרת:
none
אוchrome
(ברירת המחדל היאchrome
).ב-
none
, אפשר להשתמש במאפיין CSS-webkit-app-region
כדי להחיל אפשרות גרירה על חלון האפליקציה.אפשר להשתמש ב-
-webkit-app-region: drag
כדי לסמן אזורים שניתן לגרור. אפשר להשתמש ב-no-drag
כדי להשבית את הסגנון הזה ברכיבים מוטמעים.
State
מצב החלון: רגיל, מסך מלא, מוגדל, ממוזער.
Enum
"normal"
"fullscreen"
"maximized"
"minimized"
WindowType
מציינים את סוג החלון שרוצים ליצור.
Enum
"shell"
סוג ברירת המחדל של החלון.
"חלונית"
חלון בניהול מערכת ההפעלה (הוצא משימוש).
Methods
canSetVisibleOnAllWorkspaces()
chrome.app.window.canSetVisibleOnAllWorkspaces(): boolean
האם הפלטפורמה הנוכחית תומכת בהצגת חלונות בכל סביבות העבודה.
החזרות
-
בוליאני
create()
chrome.app.window.create(
url: string,
options?: CreateWindowOptions,
callback?: function,
): Promise<AppWindow>
אפשר לציין את הגודל והמיקום של חלון בכמה דרכים שונות. האפשרות הכי פשוטה היא לא לציין כלום, ובמקרה כזה ייעשה שימוש בגודל ברירת מחדל ובמיקום שתלוי בפלטפורמה.
כדי להגדיר את המיקום, הגודל והאילוצים של החלון, משתמשים במאפיינים innerBounds
או outerBounds
. הגבולות הפנימיים לא כוללים את העיצוב של החלון. הגבולות החיצוניים כוללים את סרגל הכותרת והמסגרת של החלון. שימו לב שהריווח הפנימי בין הגבולות הפנימיים והחיצוניים נקבע על ידי מערכת ההפעלה. לכן, הגדרת אותו מאפיין גם לגבולות הפנימיים וגם לגבולות החיצוניים נחשבת לשגיאה (לדוגמה, הגדרת innerBounds.left
וגם outerBounds.left
).
כדי לזכור באופן אוטומטי את מיקומי החלונות, אפשר להקצות להם מזהים. אם לחלון יש מזהה, המזהה הזה משמש לזכירת הגודל והמיקום של החלון בכל פעם שהוא מוזז או משנה את הגודל שלו. לאחר מכן, הגודל והמיקום האלה משמשים במקום הגבולות שצוינו בפתיחה הבאה של חלון עם אותו מזהה. אם אתם צריכים לפתוח חלון עם מזהה במיקום שאינו ברירת המחדל שזכורה, אתם יכולים ליצור אותו כשהוא מוסתר, להעביר אותו למיקום הרצוי ואז להציג אותו.
פרמטרים
-
כתובת אתר
מחרוזת
-
options
CreateWindowOptions אופציונלי
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(createdWindow: AppWindow) => void
-
createdWindow
-
החזרות
-
Promise<AppWindow>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
current()
chrome.app.window.current(): AppWindow | undefined
הפונקציה מחזירה אובייקט AppWindow
עבור ההקשר הנוכחי של הסקריפט (כלומר, אובייקט JavaScript 'window'). אפשר גם לקרוא לפונקציה הזו ב-handle להקשר של סקריפט לדף אחר, לדוגמה: otherWindow.chrome.app.window.current().
החזרות
-
AppWindow | undefined
get()
chrome.app.window.get(
id: string,
): AppWindow | undefined
מקבלים AppWindow
עם המזהה שצוין. אם לא קיים חלון עם המזהה שצוין, הפונקציה מחזירה null. השיטה הזו חדשה בגרסה 33 של Chrome.
פרמטרים
-
id [מזהה]
מחרוזת
החזרות
-
AppWindow | undefined
getAll()
chrome.app.window.getAll(): AppWindow[]
מקבל מערך של כל חלונות האפליקציות שנוצרו כרגע. השיטה הזו חדשה בגרסה 33 של Chrome.
החזרות
-
AppWindow[]
אירועים
onBoundsChanged
chrome.app.window.onBoundsChanged.addListener(
callback: function,
)
מופעל כשמשנים את הגודל של החלון.
פרמטרים
-
callback
פונקציה
הפרמטר
callback
נראה כך:() => void
onClosed
chrome.app.window.onClosed.addListener(
callback: function,
)
האירוע מופעל כשהחלון נסגר. הערה: צריך להאזין לאירוע הזה מחלון אחר ולא מהחלון שנסגר, למשל מדף הרקע. הסיבה לכך היא שהחלון שנסגר יהיה בתהליך של פירוק כשהאירוע יופעל, מה שאומר שלא כל ממשקי ה-API בהקשר של הסקריפט של החלון יפעלו.
פרמטרים
-
callback
פונקציה
הפרמטר
callback
נראה כך:() => void
onFullscreened
chrome.app.window.onFullscreened.addListener(
callback: function,
)
מופעל כשחלון מוצג במסך מלא (באמצעות AppWindow
או ממשקי API של HTML5).
פרמטרים
-
callback
פונקציה
הפרמטר
callback
נראה כך:() => void
onMaximized
chrome.app.window.onMaximized.addListener(
callback: function,
)
האירוע מופעל כשהחלון מוגדל.
פרמטרים
-
callback
פונקציה
הפרמטר
callback
נראה כך:() => void
onMinimized
chrome.app.window.onMinimized.addListener(
callback: function,
)
מופעל כשהחלון ממוזער.
פרמטרים
-
callback
פונקציה
הפרמטר
callback
נראה כך:() => void
onRestored
chrome.app.window.onRestored.addListener(
callback: function,
)
מופעל כשהחלון משוחזר ממצב ממוזער או מוגדל.
פרמטרים
-
callback
פונקציה
הפרמטר
callback
נראה כך:() => void