תיאור
אפשר להשתמש ב-chrome.windows API כדי ליצור אינטראקציה עם חלונות דפדפן. אפשר להשתמש ב-API הזה כדי ליצור, לשנות ולסדר מחדש חלונות בדפדפן.
הרשאות
כשמבקשים, windows.Window מכיל מערך של אובייקטים מסוג tabs.Tab. אם אתם צריכים גישה למאפיינים url, pendingUrl,  title או favIconUrl של tabs.Tab, אתם צריכים להצהיר על ההרשאה "tabs" במניפסט. לדוגמה:
{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}
מושגים ושימוש
החלון הנוכחי
הרבה פונקציות במערכת התוספים מקבלות ארגומנט אופציונלי windowId, שערך ברירת המחדל שלו הוא החלון הנוכחי.
החלון הנוכחי הוא החלון שמכיל את הקוד שמופעל כרגע. חשוב לדעת שהחלון הזה יכול להיות שונה מהחלון העליון או מהחלון הממוקד.
לדוגמה, נניח שהתוסף יוצר כמה כרטיסיות או חלונות מקובץ HTML יחיד, וקובץ ה-HTML מכיל קריאה ל-tabs.query(). החלון הנוכחי הוא החלון שמכיל את הדף שיצר את הקריאה, לא משנה מה החלון העליון.
במקרה של service workers, הערך של החלון הנוכחי חוזר לחלון הפעיל האחרון. במקרים מסוימים, יכול להיות שלא יהיה חלון נוכחי לדפי רקע.
דוגמאות
כדי לנסות את ה-API הזה, מתקינים את דוגמת ה-API של Windows ממאגר chrome-extension-samples.
סוגים
CreateType
מציין איזה סוג של חלון דפדפן ליצור. הערך 'panel' הוצא משימוש והוא זמין רק לתוספים קיימים שנכללים ברשימת ההיתרים ב-ChromeOS.
Enum
normal 
 מגדיר את החלון כחלון רגיל.
popup 
 מציין שהחלון הוא חלון קופץ.
"panel" 
 מציין שהחלון הוא חלונית.
QueryOptions
מאפיינים
- 
    לאכלסboolean אופציונלי אם הערך הוא true, לאובייקט windows.Windowיש מאפייןtabsשמכיל רשימה של אובייקטים מסוגtabs.Tab. האובייקטיםTabמכילים רק את המאפייניםurl,pendingUrl,titleו-favIconUrlאם קובץ המניפסט של התוסף כולל את ההרשאה"tabs".
- 
    windowTypesWindowType[] אופציונלי אם המאפיין מוגדר, הערך windows.Windowשמוחזר מסונן לפי הסוג שלו. אם לא מגדירים את המדיניות, ברירת המחדל של המסנן היא['normal', 'popup'].
Window
מאפיינים
- 
    alwaysOnTopבוליאני האם החלון מוגדר להופיע תמיד בחלק העליון. 
- 
    ממוקדבוליאני האם החלון הוא החלון הממוקד כרגע. 
- 
    גובהמספר אופציונלי הגובה של החלון, כולל המסגרת, בפיקסלים. במקרים מסוימים, יכול להיות שלא יוקצה חלון עם מאפיין height. לדוגמה, כשמבצעים שאילתה על חלונות סגורים באמצעות APIsessions.
- 
    id [מזהה]מספר אופציונלי המזהה של החלון. מזהי החלונות הם ייחודיים בסשן דפדפן. במקרים מסוימים, יכול להיות שלא יוקצה חלון לנכס ID. לדוגמה, כשמבצעים שאילתה על חלונות באמצעות APIsessions, יכול להיות שיופיע מזהה סשן.
- 
    מצב פרטיבוליאני האם החלון הוא אנונימי. 
- 
    שמאלהמספר אופציונלי ההיסט של החלון מהקצה השמאלי של המסך בפיקסלים. במקרים מסוימים, יכול להיות שלא יוקצה חלון עם מאפיין left. לדוגמה, כשמבצעים שאילתה על חלונות סגורים באמצעות APIsessions.
- 
    sessionIdמחרוזת אופציונלי מזהה הסשן שמשמש לזיהוי ייחודי של חלון, שמתקבל מ-API sessions.
- 
    הסמוי הסופיWindowState אופציונלי המצב של חלון הדפדפן הזה. 
- 
    כרטיסיותTab[] אופציונלי מערך של אובייקטים מסוג tabs.Tabשמייצגים את הכרטיסיות הנוכחיות בחלון.
- 
    עליוןמספר אופציונלי ההיסט של החלון מהקצה העליון של המסך בפיקסלים. במקרים מסוימים, יכול להיות שלא יוקצה חלון עם מאפיין top. לדוגמה, כשמבצעים שאילתה על חלונות סגורים באמצעות APIsessions.
- 
    סוגWindowType אופציונלי סוג חלון הדפדפן. 
- 
    רוחבמספר אופציונלי רוחב החלון, כולל המסגרת, בפיקסלים. במקרים מסוימים, יכול להיות שלא יוקצה חלון עם מאפיין width. לדוגמה, כשמבצעים שאילתה על חלונות סגורים באמצעות APIsessions.
WindowState
המצב של חלון הדפדפן הזה. במקרים מסוימים, יכול להיות שלא יוקצה חלון עם מאפיין state. לדוגמה, כשמבצעים שאילתה על חלונות סגורים באמצעות API sessions.
Enum
normal 
 מצב חלון רגיל (לא ממוזער, לא מוגדל ולא במסך מלא).
'minimized' 
 מצב חלון ממוזער.
'maximized' 
 מצב חלון מוגדל.
"fullscreen" 
 מצב חלון במסך מלא.
'locked-fullscreen' 
 מצב חלון במסך מלא נעול. המשתמשים לא יכולים לצאת ממצב המסך המלא הזה, והוא זמין רק לתוספים שנכללים ברשימת ההיתרים ב-ChromeOS.
WindowType
סוג חלון הדפדפן. בנסיבות מסוימות, יכול להיות שלא יוקצה לחלון מאפיין type. לדוגמה, כשמבצעים שאילתה על חלונות סגורים באמצעות API sessions.
Enum
'normal' 
 חלון דפדפן רגיל.
"popup" 
 חלון קופץ בדפדפן.
panel 
 יצא משימוש ב-API הזה. חלון בסגנון חלונית של אפליקציית Chrome. תוספים יכולים לראות רק את חלונות החלונית שלהם.
app 
 יצא משימוש ב-API הזה. חלון של אפליקציה ל-Chrome. תוספים יכולים לראות רק את החלונות של האפליקציה שלהם.
devtools 
 חלון של כלים למפתחים.
מאפיינים
WINDOW_ID_CURRENT
הערך של windowId שמייצג את החלון הנוכחי.
ערך
-2 
 
WINDOW_ID_NONE
הערך של windowId שמייצג את העובדה שאין חלון של דפדפן Chrome.
ערך
-1 
 
Methods
create()
chrome.windows.create(
createData?: object,
): Promise<Window | undefined>
יוצר (פותח) חלון דפדפן חדש עם גודל, מיקום או כתובת URL שסופקו כברירת מחדל.
פרמטרים
- 
    createDataאובייקט אופציונלי - 
    ממוקדboolean אופציונלי אם הערך הוא true, נפתח חלון פעיל. false, פתיחת חלון לא פעיל.
- 
    גובהמספר אופציונלי הגובה בפיקסלים של החלון החדש, כולל המסגרת. אם לא מציינים ערך, ברירת המחדל היא גובה טבעי. 
- 
    מצב פרטיboolean אופציונלי האם החלון החדש צריך להיות חלון פרטי. 
- 
    שמאלהמספר אופציונלי מספר הפיקסלים שקובע את המיקום של החלון החדש מהקצה השמאלי של המסך. אם לא מציינים, החלון החדש מוזז באופן טבעי מהחלון האחרון שהיה בפוקוס. המערכת מתעלמת מהערך הזה בחלוניות. 
- 
    setSelfAsOpenerboolean אופציונלי Chrome 64+אם true, הערך של window.opener בחלון החדש שנוצר מוגדר כמתקשר והוא נמצא באותה יחידה של הקשרי גלישה קשורים כמו המתקשר.
- 
    הסמוי הסופיWindowState אופציונלי Chrome 44 ואילךהמצב ההתחלתי של החלון. אי אפשר לשלב את המצבים minimized,maximizedו-fullscreenעם המצביםleft,top,widthאוheight.
- 
    tabIdמספר אופציונלי המזהה של הכרטיסייה שרוצים להוסיף לחלון החדש. 
- 
    עליוןמספר אופציונלי מספר הפיקסלים למיקום החלון החדש מהקצה העליון של המסך. אם לא מציינים, החלון החדש מוזז באופן טבעי מהחלון האחרון שהיה בפוקוס. המערכת מתעלמת מהערך הזה בחלוניות. 
- 
    סוגCreateType אופציונלי מציין איזה סוג של חלון דפדפן ליצור. 
- 
    כתובת אתרמחרוזת | מערך מחרוזות אופציונלי כתובת URL או מערך של כתובות URL שייפתחו ככרטיסיות בחלון. כתובות URL שמוגדרות במלואן חייבות לכלול סכימה, לדוגמה: 'http://www.google.com', ולא 'www.google.com'. כתובות URL לא מלאות נחשבות יחסיות בתוך התוסף. ברירת המחדל היא דף הכרטיסייה החדשה. 
- 
    רוחבמספר אופציונלי הרוחב בפיקסלים של החלון החדש, כולל המסגרת. אם לא מציינים ערך, ברירת המחדל היא רוחב טבעי. 
 
- 
    
החזרות
- 
            Promise<Window | undefined> Chrome 88 ואילך
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
): Promise<Window>
קבלת פרטים על חלון.
פרמטרים
- 
    windowIdnumber 
- 
    queryOptionsQueryOptions אופציונלי Chrome 88 ואילך
החזרות
- 
            Promise<Window> Chrome 88 ואילך
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
): Promise<Window[]>
מקבל את כל החלונות.
פרמטרים
- 
    queryOptionsQueryOptions אופציונלי Chrome 88 ואילך
החזרות
- 
            Promise<Window[]> Chrome 88 ואילך
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
מקבל את החלון הנוכחי.
פרמטרים
- 
    queryOptionsQueryOptions אופציונלי Chrome 88 ואילך
החזרות
- 
            Promise<Window> Chrome 88 ואילך
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
): Promise<Window>
מקבל את החלון שהיה במיקוד לאחרונה – בדרך כלל החלון 'העליון'.
פרמטרים
- 
    queryOptionsQueryOptions אופציונלי Chrome 88 ואילך
החזרות
- 
            Promise<Window> Chrome 88 ואילך
remove()
chrome.windows.remove(
windowId: number,
): Promise<void>
מסיר (סוגר) חלון ואת כל הכרטיסיות שבתוכו.
פרמטרים
- 
    windowIdnumber 
החזרות
- 
            Promise<void> Chrome 88 ואילך
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
): Promise<Window>
מעדכן את המאפיינים של חלון. מציינים רק את המאפיינים שרוצים לשנות. המאפיינים שלא צוינו לא משתנים.
פרמטרים
- 
    windowIdnumber 
- 
    updateInfoאובייקט - 
    drawAttentionboolean אופציונלי אם true, החלון יוצג באופן שימשוך את תשומת הלב של המשתמש לחלון, בלי לשנות את החלון הממוקד. ההשפעה נמשכת עד שהמשתמש מעביר את המיקוד לחלון. לאפשרות הזו אין השפעה אם החלון כבר נמצא במוקד. מגדירים את הערךfalseכדי לבטל בקשתdrawAttentionקודמת.
- 
    ממוקדboolean אופציונלי אם true, החלון מועבר לחזית. אי אפשר לשלב את המצב הזה עם המצב 'מוקטן'. false, מעביר את החלון הבא בסדר z לחזית. אי אפשר לשלב את הפעולה הזו עם המצבים 'מסך מלא' או 'מוגדל'.
- 
    גובהמספר אופציונלי הגובה שאליו יש לשנות את גודל החלון בפיקסלים. המערכת מתעלמת מהערך הזה בחלוניות. 
- 
    שמאלהמספר אופציונלי ההיסט מהקצה השמאלי של המסך שאליו החלון יוזז, בפיקסלים. המערכת מתעלמת מהערך הזה בחלוניות. 
- 
    הסמוי הסופיWindowState אופציונלי הסטטוס החדש של החלון. אי אפשר לשלב את המצבים 'מוקטן', 'מוגדל' ו 'מסך מלא' עם המאפיינים 'שמאל', 'למעלה', 'רוחב' או 'גובה'. 
- 
    עליוןמספר אופציונלי ההיסט מהקצה העליון של המסך שאליו צריך להעביר את החלון, בפיקסלים. המערכת מתעלמת מהערך הזה בחלוניות. 
- 
    רוחבמספר אופציונלי הרוחב שאליו יש לשנות את גודל החלון בפיקסלים. המערכת מתעלמת מהערך הזה בחלוניות. 
 
- 
    
החזרות
- 
            Promise<Window> Chrome 88 ואילך
אירועים
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
האירוע מופעל כשמשנים את הגודל של חלון. האירוע הזה נשלח רק כשהגבולות החדשים מאושרים, ולא כשמתבצעים שינויים.
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
מופעל כשחלון נוצר.
פרמטרים
- 
    callbackפונקציה Chrome 46 ואילךהפרמטר callbackנראה כך:(window: Window) => void - 
    חלוןפרטים על החלון שנוצר. 
 
- 
    
- 
    מסנניםאובייקט אופציונלי - 
    windowTypesתנאים שסוג החלון שנוצר צריך לעמוד בהם. כברירת מחדל, הוא מוגדר ל- ['normal', 'popup'].
 
- 
    
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
האירוע מופעל כשהחלון שמוגדר כרגע כחלון הממוקד משתנה. הפונקציה מחזירה את הערך chrome.windows.WINDOW_ID_NONE אם כל חלונות Chrome לא ממוקדים. הערה: במנהלי חלונות מסוימים ב-Linux,  WINDOW_ID_NONE תמיד נשלח מיד לפני מעבר מחלון Chrome אחד לחלון אחר.
פרמטרים
- 
    callbackפונקציה Chrome 46 ואילךהפרמטר callbackנראה כך:(windowId: number) => void - 
    windowIdnumber המזהה של החלון החדש שהמיקוד עבר אליו. 
 
- 
    
- 
    מסנניםאובייקט אופציונלי - 
    windowTypesתנאים שסוג החלון שמוסר צריך לעמוד בהם. כברירת מחדל, הוא מוגדר ל- ['normal', 'popup'].
 
- 
    
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
מופעל כשחלון מוסר (נסגר).
פרמטרים
- 
    callbackפונקציה Chrome 46 ואילךהפרמטר callbackנראה כך:(windowId: number) => void - 
    windowIdnumber המזהה של החלון שהוסר. 
 
- 
    
- 
    מסנניםאובייקט אופציונלי - 
    windowTypesתנאים שסוג החלון שמוסר צריך לעמוד בהם. כברירת מחדל, הוא מוגדר ל- ['normal', 'popup'].
 
-