chrome.app.window

תיאור

כדי ליצור חלונות, צריך להשתמש ב-API chrome.app.window. ל-Windows יש מסגרת אופציונלית עם סרגל כותרת ופקדי גודל. הם לא משויכים לחלונות של דפדפן Chrome. הדגמה של האפשרויות האלה זמינה בדוגמה של מצב חלון.

סוגים

AppWindow

תכונות

  • contentWindow

    חלון

    אובייקט 'window' ב-JavaScript לילד או לילדה שנוצר.

  • 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(), ברכיבי ה-handler של Keydown ושל המקשים, באופן הבא:

    window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };

    חשוב לשים לב שהתכונה window.fullscreen() תהפוך את כל החלון למסך מלא, ולא נדרשת תנועה כלשהי מצד המשתמש. ניתן להשתמש ב-HTML5 ממשק API במסך מלא גם כדי לעבור למצב מסך מלא (פרטים נוספים זמינים במאמר ממשקי API לאינטרנט).

    הפונקציה fullscreen נראית כך:

    ()=> {...}

  • getBounds

    void

    הוצא משימוש

    השתמשו ב-innerBounds או ב-outerBounds.

    מחשבים את הגבולות הפנימיים של החלון כאובייקט ContentBounds.

    הפונקציה getBounds נראית כך:

    ()=> {...}

  • הסתרה

    void

    הסתרת החלון. לא יקרה דבר אם החלון כבר מוסתר.

    הפונקציה hide נראית כך:

    ()=> {...}

  • isAlwaysOnTop

    void

    האם החלון תמיד נמצא למעלה?

    הפונקציה isAlwaysOnTop נראית כך:

    ()=> {...}

    • החזרות

      boolean

  • isFullscreen

    void

    האם החלון מוצג במסך מלא? הדבר נכון אם החלון נוצר במסך מלא או שהפך למסך מלא באמצעות ממשקי ה-API של AppWindow או HTML5 למסך מלא.

    הפונקציה isFullscreen נראית כך:

    ()=> {...}

    • החזרות

      boolean

  • isMaximized

    void

    האם החלון מוגדל?

    הפונקציה isMaximized נראית כך:

    ()=> {...}

    • החזרות

      boolean

  • isMinimized

    void

    האם החלון ממוזער?

    הפונקציה isMinimized נראית כך:

    ()=> {...}

    • החזרות

      boolean

  • הגדלה

    void

    להגדיל את החלון.

    הפונקציה maximize נראית כך:

    ()=> {...}

  • מזעור

    void

    מזעור החלון.

    הפונקציה minimize נראית כך:

    ()=> {...}

  • moveTo

    void

    הוצא משימוש מאז Chrome 43

    משתמשים ב-outerBounds.

    העברת החלון למיקום (left, top).

    הפונקציה moveTo נראית כך:

    (left: number,top: number)=> {...}

    • שמאלה

      מספר

    • ראשונה

      מספר

  • resizeTo

    void

    הוצא משימוש מאז Chrome 43

    משתמשים ב-outerBounds.

    שנה את גודל החלון ל-widthxheight פיקסלים.

    הפונקציה resizeTo נראית כך:

    (width: number,height: number)=> {...}

    • רוחב

      מספר

    • גובה

      מספר

  • שחזור

    void

    שחזור החלון, יציאה ממצב מוגדל, מוקטן או מסך מלא.

    הפונקציה restore נראית כך:

    ()=> {...}

  • setAlwaysOnTop

    void

    אפשר לקבוע אם החלון יישאר מעל רוב החלונות האחרים. נדרשת ההרשאה alwaysOnTopWindows.

    הפונקציה setAlwaysOnTop נראית כך:

    (alwaysOnTop: boolean)=> {...}

    • alwaysOnTop

      boolean

  • setBounds

    void

    הוצא משימוש

    השתמשו ב-innerBounds או ב-outerBounds.

    הגדרת הגבולות הפנימיים של החלון.

    הפונקציה setBounds נראית כך:

    (bounds: ContentBounds)=> {...}

  • setVisibleOnAllWorkspaces

    void

    מגדירים אם החלון יהיה גלוי בכל סביבות העבודה. (רק לפלטפורמות שתומכות באפשרות הזו).

    הפונקציה setVisibleOnAllWorkspaces נראית כך:

    (alwaysVisible: boolean)=> {...}

    • alwaysVisible

      boolean

  • הצגה

    void

    הצגת החלון. לא תתבצע שום פעולה אם החלון כבר גלוי. יש להתמקד בחלון אם הערך של focused מוגדר כ-true או אם הושמט.

    הפונקציה show נראית כך:

    (focused?: boolean)=> {...}

    • ממוקד

      בוליאני אופציונלי

Bounds

תכונות

  • גובה

    מספר

    אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את הגובה הנוכחי של התוכן או החלון.

  • שמאלה

    מספר

    ניתן להשתמש במאפיין הזה כדי לקרוא או לכתוב את קואורדינטת ה-X הנוכחית של התוכן או החלון.

  • maxHeight

    מספר אופציונלי

    ניתן להשתמש במאפיין הזה כדי לקרוא או לכתוב את הגובה המקסימלי הנוכחי של התוכן או החלון. הערך null מציין את האפשרות 'לא צוין'.

  • maxWidth

    מספר אופציונלי

    ניתן להשתמש במאפיין הזה כדי לקרוא או לכתוב את הרוחב המקסימלי הנוכחי של התוכן או החלון. הערך null מציין את האפשרות 'לא צוין'.

  • minHeight

    מספר אופציונלי

    ניתן להשתמש במאפיין הזה כדי לקרוא או לכתוב את הגובה המינימלי הנוכחי של התוכן או החלון. הערך null מציין את האפשרות 'לא צוין'.

  • minWidth

    מספר אופציונלי

    ניתן להשתמש במאפיין הזה כדי לקרוא או לכתוב את הרוחב המינימלי הנוכחי של התוכן או החלון. הערך null מציין את האפשרות 'לא צוין'.

  • ראשונה

    מספר

    מאפיין זה יכול לשמש לקריאה או לכתיבה של קואורדינטת ה-Y הנוכחית של התוכן או החלון.

  • רוחב

    מספר

    אפשר להשתמש במאפיין הזה כדי לקרוא או לכתוב את הרוחב הנוכחי של התוכן או החלון.

  • setMaximumSize

    void

    מגדירים את מגבלות הגודל המקסימליות של התוכן או החלון. כדי להסיר את האילוץ, אפשר להגדיר רוחב או גובה מרביים ל-null. אם הערך הוא undefined, האילוץ לא ישתנה.

    הפונקציה setMaximumSize נראית כך:

    (maxWidth: number,maxHeight: number)=> {...}

    • maxWidth

      מספר

    • maxHeight

      מספר

  • setMinimumSize

    void

    הגדרת מגבלות הגודל המינימליות של התוכן או החלון. כדי להסיר את האילוץ, אפשר להגדיר את הרוחב או הגובה המינימליים כ-null. אם הערך הוא undefined, האילוץ לא ישתנה.

    הפונקציה setMinimumSize נראית כך:

    (minWidth: number,minHeight: number)=> {...}

    • minWidth

      מספר

    • minHeight

      מספר

  • setPosition

    void

    הגדרת המיקום השמאלי והעליון של התוכן או החלון.

    הפונקציה setPosition נראית כך:

    (left: number,top: number)=> {...}

    • שמאלה

      מספר

    • ראשונה

      מספר

  • setSize

    void

    הגדרה של הרוחב והגובה של התוכן או החלון.

    הפונקציה setSize נראית כך:

    (width: number,height: number)=> {...}

    • רוחב

      מספר

    • גובה

      מספר

BoundsSpecification

תכונות

  • גובה

    מספר אופציונלי

    גובה התוכן או החלון.

  • שמאלה

    מספר אופציונלי

    קואורדינטת ה-X של התוכן או החלון.

  • maxHeight

    מספר אופציונלי

    הגובה המקסימלי של התוכן או החלון.

  • maxWidth

    מספר אופציונלי

    הרוחב המקסימלי של התוכן או החלון.

  • minHeight

    מספר אופציונלי

    הגובה המינימלי של התוכן או החלון.

  • minWidth

    מספר אופציונלי

    הרוחב המינימלי של התוכן או החלון.

  • ראשונה

    מספר אופציונלי

    קואורדינטת ה-Y של התוכן או החלון.

  • רוחב

    מספר אופציונלי

    הרוחב של התוכן או החלון.

ContentBounds

תכונות

  • גובה

    מספר אופציונלי

  • שמאלה

    מספר אופציונלי

  • ראשונה

    מספר אופציונלי

  • רוחב

    מספר אופציונלי

CreateWindowOptions

תכונות

  • alwaysOnTop

    בוליאני אופציונלי

    אם הערך הוא True, החלון יישאר מעל רוב החלונות האחרים. אם יש כמה חלונות מהסוג הזה, החלון הנוכחי שנמצא במוקד יופיע בחזית. נדרשת ההרשאה alwaysOnTopWindows. ברירת המחדל היא FALSE.

    צריך לקרוא לפונקציה setAlwaysOnTop() בחלון כדי לשנות את הנכס הזה לאחר היצירה.

  • גבולות

    ContentBounds אופציונלי

    הוצא משימוש

    השתמשו ב-innerBounds או ב-outerBounds.

    הגודל והמיקום של התוכן בחלון (לא כולל סרגל הכותרת). אם צוין גם מזהה וחלון עם מזהה תואם כבר הוצג, המערכת תשתמש בגבולות של החלון ששמורים בזיכרון.

  • ממוקד

    בוליאני אופציונלי

    אם הערך הוא True, החלון יתמקד בזמן היצירה. ברירת המחדל היא True.

  • מסגרת

    string|FrameOptions אופציונלי

    סוג המסגרת: none או chrome (ברירת המחדל היא chrome). עבור none, אפשר להשתמש במאפיין CSS -webkit-app-region כדי להחיל יכולת גרירה לחלון של האפליקציה. ניתן להשתמש ב--webkit-app-region: drag כדי לסמן אזורים כניתנים לגרירה. אפשר להשתמש ב-no-drag כדי להשבית את הסגנון הזה ברכיבים בתוך הרכיבים.

    השימוש ב-FrameOptions חדש בגרסה M36.

  • מוסתר

    בוליאני אופציונלי

    אם הערך הוא True, החלון ייווצר במצב מוסתר. קוראים ל-show() בחלון כדי להציג אותה אחרי שיוצרים אותה. ברירת המחדל היא FALSE.

  • סמל

    מחרוזת אופציונלי

    Chrome בגרסה 54 ומעלה

    כתובת ה-URL של סמל החלון. לחלון יכול להיות סמל משלו כאשר הערך של showInShelf מוגדר כ-true. כתובת ה-URL צריכה להיות כתובת 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.

  • resizable

    בוליאני אופציונלי

    אם הערך הוא True, המשתמש יוכל לשנות את גודל החלון. ברירת המחדל היא True.

  • showInShelf

    בוליאני אופציונלי

    Chrome בגרסה 54 ומעלה

    אם הערך הוא True, לחלון יהיה סמל מדף משלו. אחרת, החלון יקובץ במדף עם חלונות אחרים שמשויכים לאפליקציה. ברירת המחדל היא FALSE. אם ShowInShelf מוגדר כ-True, עליך לציין מזהה לחלון.

  • singleton

    בוליאני אופציונלי

    הוצא משימוש

    אין יותר תמיכה בחלונות מרובים עם אותו מזהה.

    כברירת מחדל, אם תציינו מזהה לחלון, הוא ייווצר רק אם לא קיים חלון אחר עם אותו מזהה. אם כבר קיים חלון עם אותו מזהה, החלון יופעל במקום זאת. אם רוצים ליצור כמה חלונות עם אותו מזהה, אפשר להגדיר את המאפיין הזה כ-False.

  • state

    מדינה (State) אופציונלי

    המצב ההתחלתי של החלון, שמאפשר ליצור אותו כבר במסך מלא, להגדיל אותו או למזער אותו. ברירת המחדל היא 'רגיל'.

  • סוג

    WindowType אופציונלי

    Chrome 45 ואילך הוצא משימוש מאז Chrome 69

    כל חלונות האפליקציה משתמשים בסוג החלון 'מעטפת'

    סוג החלון ליצירה.

  • visibleOnAllWorkspaces

    בוליאני אופציונלי

    אם הערך הוא True והוא נתמך על ידי הפלטפורמה, החלון יהיה גלוי בכל סביבות העבודה.

FrameOptions

תכונות

  • activeColor

    מחרוזת אופציונלי

    מאפשר להגדיר את צבע המסגרת של החלון כאשר הוא פעיל. צביעת מסגרת זמינה רק אם סוג המסגרת הוא chrome.

    צביעת מסגרת זמינה רק אם סוג המסגרת הוא chrome.

    צביעת פריימים היא תכונה חדשה ב-Chrome 36.

  • color [צבע]

    מחרוזת אופציונלי

    מאפשר להגדיר את צבע המסגרת. צביעת מסגרת זמינה רק אם סוג המסגרת הוא 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)

WindowType

Chrome 45 ואילך

מציין את סוג החלון שרוצים ליצור.

טיפוסים בני מנייה (enum)

"מעטפת"
סוג חלון ברירת המחדל.

"חלונית"
חלון מנוהל של מערכת ההפעלה (הוצא משימוש).

שיטות

canSetVisibleOnAllWorkspaces()

chrome.app.window.canSetVisibleOnAllWorkspaces()

האם הפלטפורמה הנוכחית תומכת בחלונות גלויים בכל סביבות העבודה.

החזרות

  • boolean

create()

הבטחה
chrome.app.window.create(
  url: string,
  options?: CreateWindowOptions,
  callback?: function,
)

ניתן לציין את הגודל והמיקום של חלון במספר דרכים. האפשרות הפשוטה ביותר היא לא לציין שום דבר, ובמקרה כזה ייעשה שימוש בגודל ברירת מחדל ובמיקום התלוי בפלטפורמה.

כדי להגדיר את המיקום, הגודל והאילוצים של החלון, משתמשים במאפיינים innerBounds או outerBounds. גבולות פנימיים לא כוללים קישוטים לחלונות. הגבולות החיצוניים כוללים את פס הכותרת והמסגרת של החלון. שימו לב שהמרווח בין הגבול הפנימי והחיצוני נקבע על ידי מערכת ההפעלה. לכן, הגדרה של אותו מאפיין גם לגבול הפנימי וגם לגבול החיצוני נחשבת לשגיאה (לדוגמה, הגדרה של innerBounds.left וגם של outerBounds.left).

כדי לזכור באופן אוטומטי את המיקומים של החלונות, אתם יכולים לתת להם מזהים. אם לחלון יש מזהה, המזהה הזה משמש לזכירת הגודל והמיקום של החלון בכל פעם שמעבירים אותו או משנים את הגודל שלו. הגודל והמיקום האלה משמשים במקום הגבולות שצוינו בפתיחה הבאה של חלון עם אותו מזהה. אם אתם רוצים לפתוח חלון עם מזהה במיקום שאינו ברירת המחדל שזכורה לכם, תוכלו ליצור חלון מוסתר, להעביר אותו למיקום הרצוי ולהציג אותו.

פרמטרים

  • כתובת אתר

    מחרוזת

  • אפשרויות

    CreateWindowOptions אופציונלי

  • קריאה חוזרת (callback)

    פונקציה אופציונלי

    הפרמטר callback נראה כך:

    (createdWindow: AppWindow)=>void

החזרות

  • Promise<AppWindow>

    Chrome 117 ומעלה

    הבטחות נתמכות רק במניפסט מגרסה V3 ואילך. בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).

current()

chrome.app.window.current()

מחזירה אובייקט AppWindow עבור ההקשר הנוכחי של הסקריפט (כלומר, אובייקט 'window' ב-JavaScript). אפשר גם לקרוא לפונקציה הזו בכינוי בהקשר של סקריפט של דף אחר, לדוגמה: otherWindow.chrome.app.window.current().

החזרות

get()

chrome.app.window.get(
  id: string,
)

הפונקציה מקבלת AppWindow עם המזהה הנתון. אם לא קיים חלון עם המזהה הנתון, null מוחזר. השיטה הזו חדשה ב-Chrome 33.

פרמטרים

  • id

    מחרוזת

החזרות

getAll()

chrome.app.window.getAll()

מקבל מערך של כל החלונות של האפליקציות שנוצרו כרגע. השיטה הזו חדשה ב-Chrome 33.

החזרות

אירועים

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,
)

מופעל כשהחלון מוצג במסך מלא (דרך ממשקי ה-API של AppWindow או של 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