browser.tabs

תיאור

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

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

הרשאות

כדי להשתמש ברוב התכונות לא צריך הרשאות. לדוגמה: יצירת כרטיסייה חדשה, טעינה מחדש של כרטיסייה, מעבר לכתובת URL אחרת וכו'.

יש שלוש הרשאות שהמפתחים צריכים להכיר כשהם עובדים עם Tabs API.

ההרשאה 'כרטיסיות'

ההרשאה הזו לא מעניקה גישה למרחב השמות browser.tabs. במקום זאת, היא מעניקה לתוסף את היכולת לקרוא ל-tabs.query() מול ארבעה מאפיינים רגישים במופעים של tabs.Tab: ‏ url,‏ pendingUrl,‏ title ו-favIconUrl.

{
  "name": "My extension",
  ...
  "permissions": [
    "tabs"
  ],
  ...
}
הרשאות המארח

הרשאות מארח מאפשרות לתוסף לקרוא ולשאול לגבי ארבעה מאפיינים רגישים של כרטיסייה תואמת tabs.Tab. הם יכולים גם ליצור אינטראקציה ישירה עם הכרטיסיות התואמות באמצעות שיטות כמו tabs.captureVisibleTab(),‏ scripting.executeScript(),‏ scripting.insertCSS() ו-scripting.removeCSS().

{
  "name": "My extension",
  ...
  "host_permissions": [
    "http://*/*",
    "https://*/*"
  ],
  ...
}
ההרשאה activeTab

‫activeTab מעניקה לתוסף הרשאת מארח זמנית לכרטיסייה הנוכחית בתגובה להפעלה של המשתמש. בניגוד להרשאות מארח, activeTab לא מפעיל אזהרות.

{
  "name": "My extension",
  ...
  "permissions": [
    "activeTab"
  ],
  ...
}

תרחישים לדוגמה

בקטעים הבאים מפורטים כמה תרחישי שימוש נפוצים.

פתיחת דף של תוסף בכרטיסייה חדשה

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

background.js:

browser.runtime.onInstalled.addListener(({reason}) => {
  if (reason === 'install') {
    browser.tabs.create({
      url: "onboarding.html"
    });
  }
});

קבלת הכרטיסייה הנוכחית

בדוגמה הזו אפשר לראות איך service worker של תוסף יכול לאחזר את הכרטיסייה הפעילה מהחלון שמוצג כרגע (או מהחלון שהוצג לאחרונה, אם לא מוצגים חלונות של Chrome). בדרך כלל אפשר לחשוב על זה כעל הכרטיסייה הנוכחית של המשתמש.

  async function getCurrentTab() {
    let queryOptions = { active: true, lastFocusedWindow: true };
    // `tab` will either be a `tabs.Tab` instance or `undefined`.
    let [tab] = await browser.tabs.query(queryOptions);
    return tab;
  }

  function getCurrentTab(callback) {
    let queryOptions = { active: true, lastFocusedWindow: true };
    browser.tabs.query(queryOptions, ([tab]) => {
      if (browser.runtime.lastError)
      console.error(browser.runtime.lastError);
      // `tab` will either be a `tabs.Tab` instance or `undefined`.
      callback(tab);
    });
  }

השתקת הכרטיסייה שצוינה

בדוגמה הזו אפשר לראות איך תוסף יכול להפעיל או להשבית את ההשתקה של כרטיסייה מסוימת.

  async function toggleMuteState(tabId) {
    const tab = await browser.tabs.get(tabId);
    const muted = !tab.mutedInfo.muted;
    await browser.tabs.update(tabId, {muted});
    console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`);
  }

  function toggleMuteState(tabId) {
    browser.tabs.get(tabId, async (tab) => {
      let muted = !tab.mutedInfo.muted;
      await browser.tabs.update(tabId, { muted });
      console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`);
    });
  }

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

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

  browser.tabs.onActivated.addListener(moveToFirstPosition);

  async function moveToFirstPosition(activeInfo) {
    try {
      await browser.tabs.move(activeInfo.tabId, {index: 0});
      console.log("Success.");
    } catch (error) {
      if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
        setTimeout(() => moveToFirstPosition(activeInfo), 50);
      } else {
        console.error(error);
      }
    }
  }

  browser.tabs.onActivated.addListener(moveToFirstPositionMV2);

  function moveToFirstPositionMV2(activeInfo) {
    browser.tabs.move(activeInfo.tabId, { index: 0 }, () => {
      if (browser.runtime.lastError) {
        const error = browser.runtime.lastError;
        if (error == "Error: Tabs cannot be edited right now (user may be dragging a tab).") {
          setTimeout(() => moveToFirstPositionMV2(activeInfo), 50);
        } else {
          console.error(error);
        }
      } else {
        console.log("Success.");
      }
    });
  }

העברת הודעה לסקריפט תוכן של כרטיסייה שנבחרה

בדוגמה הזו אפשר לראות איך סקריפט של Service Worker בתוסף יכול לתקשר עם סקריפטים של תוכן בכרטיסיות ספציפיות בדפדפן באמצעות tabs.sendMessage().

function sendMessageToActiveTab(message) {
  const [tab] = await browser.tabs.query({ active: true, lastFocusedWindow: true });
  const response = await browser.tabs.sendMessage(tab.id, message);
  // TODO: Do something with the response.
}

דוגמאות לתוספים

לדוגמאות נוספות של תוספים ל-Tabs API, אפשר לעיין באפשרויות הבאות:

סוגים

MutedInfo

‫Chrome 46 ואילך

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

מאפיינים

  • extensionId

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

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

  • מושתק

    בוליאני

    האם הכרטיסייה מושתקת (ההפעלה של הצליל נמנעת). יכול להיות שהכרטיסייה מושתקת גם אם לא הושמע בה צליל או אם לא מושמע בה צליל כרגע. שווה לערך שמוצג באינדיקטור של האודיו 'מושתק'.

  • reason

    ‫MutedInfoReason אופציונלי

    הסיבה להשתקה או לביטול ההשתקה של הכרטיסייה. הערך לא מוגדר אם מצב ההשתקה של הכרטיסייה לא השתנה אף פעם.

MutedInfoReason

‫Chrome 46 ואילך

אירוע שגרם לשינוי במצב ההשתקה.

ספירה

‫user
פעולה של קלט של משתמשים הגדירה את מצב ההשתקה.

"capture"
התחיל צילום מסך של הכרטיסייה, ולכן מצב ההשתקה השתנה.

‫'extension'
תוסף, שמזוהה על ידי השדה extensionId, הגדיר את מצב ההשתקה.

Tab

מאפיינים

  • פעיל

    בוליאני

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

  • audible, אודיבל

    ‫boolean אופציונלי

    ‫Chrome 45 ואילך

    האם הכרטיסייה הפיקה צליל בשניות האחרונות (אבל יכול להיות שלא שומעים אותו אם הוא גם מושתק). מקביל לכך שמוצג האינדיקטור 'האודיו של הדובר'.

  • autoDiscardable

    בוליאני

    ‫Chrome 54 ואילך

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

  • דחית את

    בוליאני

    ‫Chrome 54 ואילך

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

  • favIconUrl

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

    כתובת ה-URL של סמל האתר של הכרטיסייה. המאפיין הזה מופיע רק אם לתוסף יש הרשאה "tabs" או הרשאות מארח לדף. יכול להיות שהערך יהיה מחרוזת ריקה אם הכרטיסייה נטענת.

  • במצב קפוא

    בוליאני

    ‫Chrome 132 ואילך

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

  • groupId

    number

    ‫Chrome 88 ואילך

    המזהה של הקבוצה שאליה הכרטיסייה שייכת.

  • גובה

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

    גובה הכרטיסייה בפיקסלים.

  • מודגש

    בוליאני

    אם הכרטיסייה מודגשת.

  • id [מזהה]

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

    המזהה של הכרטיסייה. מזהי הכרטיסיות הם ייחודיים בסשן דפדפן. במקרים מסוימים, יכול להיות שלא יוקצה מזהה לכרטיסייה. לדוגמה, כשמבצעים שאילתה לגבי כרטיסיות חיצוניות באמצעות ה-API ‏sessions, יכול להיות שיופיע מזהה סשן. אפשר גם להגדיר את מזהה הכרטיסייה ל-chrome.tabs.TAB_ID_NONE עבור אפליקציות וחלונות של כלי פיתוח.

  • פרטי

    בוליאני

    האם הכרטיסייה נמצאת בחלון פרטי.

  • אינדקס

    number

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

  • lastAccessed

    number

    ‫Chrome 121 ואילך

    הפעם האחרונה שהכרטיסייה הפכה לפעילה בחלון שלה, כמספר אלפיות השנייה מאז ראשית זמן יוניקס (Unix epoch).

  • mutedInfo

    ‫MutedInfo אופציונלי

    ‫Chrome 46 ואילך

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

  • openerTabId

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

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

  • pendingUrl

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

    ‫Chrome 79 ואילך

    כתובת ה-URL שאליה הכרטיסייה עוברת, לפני שהיא מאשרת את המעבר. המאפיין הזה מופיע רק אם לתוסף יש הרשאה "tabs" או הרשאות מארח לדף, ויש ניווט בהמתנה.

  • מוצמד

    בוליאני

    האם הכרטיסייה מוצמדת.

  • נבחר

    בוליאני

    הוצא משימוש

    במקומה יש להשתמש בtabs.Tab.highlighted.

    האם הכרטיסייה נבחרה.

  • sessionId

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

    מזהה הסשן שמשמש לזיהוי ייחודי של כרטיסייה שהתקבלה מ-API‏ sessions.

  • splitViewId

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

    ‫Chrome 140+‎

    המזהה של התצוגה המפוצלת שהכרטיסייה שייכת אליה.

  • status

    ‫TabStatus אופציונלי

    סטטוס הטעינה של הכרטיסייה.

  • title

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

    השם של הכרטיסייה. המאפיין הזה מופיע רק אם לתוסף יש הרשאה "tabs" או הרשאות מארח לדף.

  • url

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

    כתובת ה-URL האחרונה שבוצעה לגביה פעולת commit בפריים הראשי של הכרטיסייה. המאפיין הזה מופיע רק אם לתוסף יש הרשאה "tabs" או הרשאות מארח לדף. יכול להיות מחרוזת ריקה אם הכרטיסייה עדיין לא בוצעה. מידע נוסף מופיע במאמר Tab.pendingUrl.

  • רוחב

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

    רוחב הכרטיסייה בפיקסלים.

  • windowId

    number

    המזהה של החלון שמכיל את הכרטיסייה.

TabStatus

‫Chrome 44 ואילך

סטטוס הטעינה של הכרטיסייה.

ספירה

‫'unloaded'

‫"loading"

‫complete

WindowType

‫Chrome 44 ואילך

סוג החלון.

ספירה

‫'normal'

‫"popup"

‫"panel"

‫"app"

‎"devtools"

ZoomSettings

ההגדרה קובעת איך שינויים בזום בכרטיסייה מטופלים ובאיזה היקף.

מאפיינים

  • defaultZoomFactor

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

    ‫Chrome 43 ואילך

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

  • מצב

    ‫ZoomSettingsMode optional

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

  • היקף

    ‫ZoomSettingsScope אופציונלי

    ההגדרה קובעת אם שינויי הזום יישמרו עבור המקור של הדף, או רק בכרטיסייה הזו. ברירת המחדל היא per-origin במצב automatic, ו-per-tab בכל מצב אחר.

ZoomSettingsMode

‫Chrome 44 ואילך

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

ספירה

'אוטומטי'
שינויי הזום מטופלים אוטומטית על ידי הדפדפן.

'ידני'
מבטל את הטיפול האוטומטי בשינויי זום. האירוע onZoomChange עדיין יישלח, והתוסף אחראי להאזין לאירוע הזה ולשנות את קנה המידה של הדף באופן ידני. במצב הזה אין תמיכה בהגדלה per-origin, ולכן המערכת מתעלמת מהגדרת ההגדלה scope ומניחה שההגדלה היא per-tab.

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

ZoomSettingsScope

‫Chrome 44 ואילך

ההגדרה קובעת אם שינויי הזום יישמרו עבור המקור של הדף, או רק בכרטיסייה הזו. ברירת המחדל היא per-origin במצב automatic, ו-per-tab בכל מצב אחר.

ספירה

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

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

מאפיינים

MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND

‫Chrome 92 ואילך

המספר המקסימלי של פעמים שאפשר לקרוא ל-captureVisibleTab בשנייה. השימוש ב-captureVisibleTab יקר, ולכן לא מומלץ להשתמש בו לעיתים קרובות מדי.

ערך

‫2

SPLIT_VIEW_ID_NONE

‫Chrome 140+‎

מזהה שמייצג את העובדה שלא מדובר בכרטיסייה מפוצלת.

ערך

‫-1

TAB_ID_NONE

‫Chrome 46 ואילך

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

ערך

‫-1

TAB_INDEX_NONE

‫Chrome 123 ואילך

אינדקס שמייצג את היעדר אינדקס של כרטיסייה ב-tab_strip.

ערך

‫-1

Methods

captureVisibleTab()

chrome.tabs.captureVisibleTab(
  windowId?: number,
  options?: ImageDetails,
)
: Promise<string>

מצלם את האזור הגלוי של הכרטיסייה הפעילה בחלון שצוין. כדי להפעיל את השיטה הזו, לתוסף צריכה להיות ההרשאה <all_urls> או ההרשאה activeTab. בנוסף לאתרים שאליהם תוספים יכולים לגשת בדרך כלל, השיטה הזו מאפשרת לתוספים לצלם אתרים רגישים שמוגבלים בדרך אחרת, כולל דפים עם סכימת chrome:, דפים של תוספים אחרים וכתובות URL מסוג data:. אפשר לצלם אתרים רגישים רק באמצעות ההרשאה activeTab. אפשר לתעד כתובות URL של קבצים רק אם ניתנה לתוסף גישה לקבצים.

פרמטרים

החזרות

  • Promise<string>

    ‫Chrome 88 ואילך

connect()

chrome.tabs.connect(
  tabId: number,
  connectInfo?: object,
)
: runtime.Port

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

פרמטרים

  • tabId

    number

  • connectInfo

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

    • documentId

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

      ‫Chrome 106 ואילך

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

    • frameId

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

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

    • שם

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

      מועבר אל onConnect עבור סקריפטים של תוכן שמקשיבים לאירוע החיבור.

החזרות

  • יציאה שאפשר להשתמש בה כדי לתקשר עם סקריפטים של תוכן שפועלים בכרטיסייה שצוינה. האירוע runtime.Port של היציאה מופעל אם הכרטיסייה נסגרת או לא קיימת.

create()

chrome.tabs.create(
  createProperties: object,
)
: Promise<Tab>

יצירת כרטיסייה חדשה.

פרמטרים

  • createProperties

    אובייקט

    • פעיל

      ‫boolean אופציונלי

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

    • אינדקס

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

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

    • openerTabId

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

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

    • מוצמד

      ‫boolean אופציונלי

      האם הכרטיסייה צריכה להיות מוצמדת. ברירת המחדל היא false

    • נבחר

      ‫boolean אופציונלי

      הוצא משימוש

      צריך להשתמש בערך active.

      האם הכרטיסייה צריכה להפוך לכרטיסייה שנבחרה בחלון. ברירת המחדל היא true

    • splitWithTabId

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

      ‫Chrome 155+

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

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

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

      כתובת ה-URL שאליה הכרטיסייה תנווט בהתחלה. כתובות URL מוגדרות במלואן חייבות לכלול סכימה (כלומר, ‫'http://www.google.com', ולא 'www.google.com'). כתובות URL יחסיות הן יחסיות לדף הנוכחי בתוך התוסף. ברירת המחדל היא דף הכרטיסייה החדשה.

    • windowId

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

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

החזרות

  • Promise<Tab>

    ‫Chrome 88 ואילך

createSplit()

‫Chrome 155+
chrome.tabs.createSplit(
  tabIds: [number, number],
)
: Promise<number>

פיצול של שתי כרטיסיות קיימות לתצוגה מפוצלת.

פרמטרים

  • tabIds

    [number, number]

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

    הם צריכים להיות סמוכים. הם לא יכולים להיות כבר בתצוגה מפוצלת. הם צריכים להיות באותו מצב של windowId, pinned ו-groupId.

החזרות

  • Promise<number>

detectLanguage()

chrome.tabs.detectLanguage(
  tabId?: number,
)
: Promise<string>

מזהה את השפה העיקרית של התוכן בכרטיסייה.

פרמטרים

  • tabId

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

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

החזרות

  • Promise<string>

    ‫Chrome 88 ואילך

discard()

‫Chrome 54 ואילך
chrome.tabs.discard(
  tabId?: number,
)
: Promise<Tab | undefined>

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

פרמטרים

  • tabId

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

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

החזרות

  • ‫Promise<Tab | undefined>

    ‫Chrome 88 ואילך

    ההבטחה מתקיימת אחרי שהפעולה מסתיימת.

duplicate()

chrome.tabs.duplicate(
  tabId: number,
)
: Promise<Tab | undefined>

משכפל כרטיסייה.

פרמטרים

  • tabId

    number

    המזהה של הכרטיסייה שרוצים לשכפל.

החזרות

  • ‫Promise<Tab | undefined>

    ‫Chrome 88 ואילך

get()

chrome.tabs.get(
  tabId: number,
)
: Promise<Tab>

אחזור פרטים על הכרטיסייה שצוינה.

פרמטרים

  • tabId

    number

החזרות

  • Promise<Tab>

    ‫Chrome 88 ואילך

getCurrent()

chrome.tabs.getCurrent(): Promise<Tab | undefined>

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

החזרות

  • ‫Promise<Tab | undefined>

    ‫Chrome 88 ואילך

getZoom()

chrome.tabs.getZoom(
  tabId?: number,
)
: Promise<number>

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

פרמטרים

  • tabId

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

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

החזרות

  • Promise<number>

    ‫Chrome 88 ואילך

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

getZoomSettings()

chrome.tabs.getZoomSettings(
  tabId?: number,
)
: Promise<ZoomSettings>

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

פרמטרים

  • tabId

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

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

החזרות

  • Promise<ZoomSettings>

    ‫Chrome 88 ואילך

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

goBack()

‫Chrome 72 ואילך
chrome.tabs.goBack(
  tabId?: number,
)
: Promise<void>

חזרה לדף הקודם, אם יש כזה.

פרמטרים

  • tabId

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

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

החזרות

  • Promise<void>

    ‫Chrome 88 ואילך

goForward()

‫Chrome 72 ואילך
chrome.tabs.goForward(
  tabId?: number,
)
: Promise<void>

מעבר לדף הבא, אם יש כזה.

פרמטרים

  • tabId

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

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

החזרות

  • Promise<void>

    ‫Chrome 88 ואילך

group()

‫Chrome 88 ואילך
chrome.tabs.group(
  options: object,
)
: Promise<number>

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

פרמטרים

  • options

    אובייקט

    • createProperties

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

      הגדרות ליצירת קבוצה. אי אפשר להשתמש בפרמטר הזה אם כבר צוין groupId.

      • windowId

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

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

    • groupId

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

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

    • tabIds

      מספר | [מספר, ...מספר[]]

      מזהה הכרטיסייה או רשימה של מזהי כרטיסיות שרוצים להוסיף לקבוצה שצוינה.

החזרות

  • Promise<number>

highlight()

chrome.tabs.highlight(
  highlightInfo: object,
)
: Promise<windows.Window>

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

פרמטרים

  • highlightInfo

    אובייקט

    • כרטיסיות

      number | number[]

      אינדקס כרטיסייה אחד או יותר להדגשה.

    • windowId

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

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

החזרות

move()

chrome.tabs.move(
  tabIds: number | number[],
  moveProperties: object,
)
: Promise<Tab | Tab[]>

העברה של כרטיסייה אחת או יותר למיקום חדש בחלון שלהן, או לחלון חדש. שימו לב שאפשר להעביר כרטיסיות רק לחלונות רגילים (window.type === "normal") ומחלונות רגילים.

פרמטרים

  • tabIds

    number | number[]

    מזהה הכרטיסייה או רשימה של מזהי כרטיסיות להעברה.

  • moveProperties

    אובייקט

    • אינדקס

      number

      המיקום שאליו רוצים להעביר את החלון. משתמשים ב--1 כדי להציב את הכרטיסייה בסוף החלון.

    • windowId

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

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

החזרות

  • Promise<Tab | Tab[]>

    ‫Chrome 88 ואילך

query()

chrome.tabs.query(
  queryInfo: object,
)
: Promise<Tab[]>

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

פרמטרים

  • queryInfo

    אובייקט

    • פעיל

      ‫boolean אופציונלי

      האם הכרטיסיות פעילות בחלונות שלהן.

    • audible, אודיבל

      ‫boolean אופציונלי

      ‫Chrome 45 ואילך

      האם אפשר לשמוע את הכרטיסיות.

    • autoDiscardable

      ‫boolean אופציונלי

      ‫Chrome 54 ואילך

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

    • currentWindow

      ‫boolean אופציונלי

      אם הכרטיסיות נמצאות בחלון הנוכחי.

    • דחית את

      ‫boolean אופציונלי

      ‫Chrome 54 ואילך

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

    • במצב קפוא

      ‫boolean אופציונלי

      ‫Chrome 132 ואילך

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

    • groupId

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

      ‫Chrome 88 ואילך

      המזהה של הקבוצה שהכרטיסיות נמצאות בה, או tabGroups.TAB_GROUP_ID_NONE אם הכרטיסיות לא קובצו.

    • מודגש

      ‫boolean אופציונלי

      אם הכרטיסיות מודגשות.

    • אינדקס

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

      המיקום של הכרטיסיות בחלונות שלהן.

    • lastFocusedWindow

      ‫boolean אופציונלי

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

    • מושתק

      ‫boolean אופציונלי

      ‫Chrome 45 ואילך

      אם הכרטיסיות מושתקות.

    • מוצמד

      ‫boolean אופציונלי

      אם הכרטיסיות מוצמדות.

    • splitViewId

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

      ‫Chrome 140+‎

      המספר הסידורי של התצוגה המפוצלת שבה הכרטיסיות נמצאות, או tabs.SPLIT_VIEW_ID_NONE אם הכרטיסיות לא נמצאות בתצוגה מפוצלת.

    • status

      ‫TabStatus אופציונלי

      סטטוס הטעינה של הכרטיסייה.

    • title

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

      התאמה של כותרות דפים לתבנית. המערכת מתעלמת מהמאפיין הזה אם לתוסף אין הרשאת "tabs" או הרשאות מארח לדף.

    • url

      string | string[] אופציונלי

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

    • windowId

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

      המזהה של חלון ההורה, או windows.WINDOW_ID_CURRENT בשביל החלון הנוכחי.

    • windowType

      ‫WindowType אופציונלי

      סוג החלון שבו הכרטיסיות נמצאות.

החזרות

  • Promise<Tab[]>

    ‫Chrome 88 ואילך

reload()

chrome.tabs.reload(
  tabId?: number,
  reloadProperties?: object,
)
: Promise<void>

טעינה מחדש של כרטיסייה

פרמטרים

  • tabId

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

    המזהה של הכרטיסייה לטעינה מחדש. ברירת המחדל היא הכרטיסייה שנבחרה בחלון הנוכחי.

  • reloadProperties

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

    • bypassCache

      ‫boolean אופציונלי

      האם לעקוף את השמירה במטמון המקומי. ברירת המחדל היא false.

החזרות

  • Promise<void>

    ‫Chrome 88 ואילך

remove()

chrome.tabs.remove(
  tabIds: number | number[],
)
: Promise<void>

סוגר כרטיסייה אחת או יותר.

פרמטרים

  • tabIds

    number | number[]

    מזהה הכרטיסייה או רשימת מזהי הכרטיסיות שרוצים לסגור.

החזרות

  • Promise<void>

    ‫Chrome 88 ואילך

sendMessage()

chrome.tabs.sendMessage(
  tabId: number,
  message: any,
  options?: object,
)
: Promise<any>

שולח הודעה אחת לסקריפטים של התוכן בכרטיסייה שצוינה. האירוע runtime.onMessage מופעל בכל סקריפט תוכן שפועל בכרטיסייה שצוינה עבור התוסף הנוכחי.

פרמטרים

  • tabId

    number

  • הודעה

    כל

    ההודעה לשליחה. ההודעה הזו צריכה להיות אובייקט שאפשר להמיר ל-JSON.

  • options

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

    • documentId

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

      ‫Chrome 106 ואילך

      שליחת הודעה למסמך ספציפי שמזוהה על ידי documentId במקום לכל המסגרות בכרטיסייה.

    • frameId

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

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

החזרות

  • Promise<any>

    ‫Chrome 99 ואילך

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

setZoom()

chrome.tabs.setZoom(
  tabId?: number,
  zoomFactor: number,
)
: Promise<void>

מגדילה את התצוגה של כרטיסייה ספציפית.

פרמטרים

  • tabId

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

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

  • zoomFactor

    number

    גורם הזום החדש. הערך 0 מגדיר את הכרטיסייה לגורם הזום הנוכחי שמוגדר כברירת מחדל. ערכים שגדולים מ-0 מציינים גורם שינוי גודל (אולי לא ברירת המחדל) לכרטיסייה.

החזרות

  • Promise<void>

    ‫Chrome 88 ואילך

    הבעיה נפתרת אחרי שינוי גורם ההגדלה.

setZoomSettings()

chrome.tabs.setZoomSettings(
  tabId?: number,
  zoomSettings: ZoomSettings,
)
: Promise<void>

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

פרמטרים

  • tabId

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

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

  • zoomSettings

    הגדרת אופן הטיפול בשינויים בזום וההיקף שלהם.

החזרות

  • Promise<void>

    ‫Chrome 88 ואילך

    הבעיה נפתרת אחרי שמשנים את הגדרות הזום.

ungroup()

‫Chrome 88 ואילך
chrome.tabs.ungroup(
  tabIds: number | [number, ...number[]],
)
: Promise<void>

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

פרמטרים

  • tabIds

    מספר | [מספר, ...מספר[]]

    מזהה הכרטיסייה או רשימת מזהי הכרטיסיות שרוצים להסיר מהקבוצות שלהן.

החזרות

  • Promise<void>

unsplit()

‫Chrome 155+
chrome.tabs.unsplit(
  splitViewId: number,
)
: Promise<void>

הכרטיסיות בתצוגה המפוצלת יוצגו ככרטיסיות נפרדות.

פרמטרים

  • splitViewId

    number

    המזהה של התצוגה המפוצלת שרוצים להפריד.

החזרות

  • Promise<void>

update()

chrome.tabs.update(
  tabId?: number,
  updateProperties: object,
)
: Promise<Tab | undefined>

משנה את המאפיינים של כרטיסייה. מאפיינים שלא מצוינים ב-updateProperties לא משתנים.

פרמטרים

  • tabId

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

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

  • updateProperties

    אובייקט

    • פעיל

      ‫boolean אופציונלי

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

    • autoDiscardable

      ‫boolean אופציונלי

      ‫Chrome 54 ואילך

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

    • מודגש

      ‫boolean אופציונלי

      הוספה או הסרה של הכרטיסייה מהבחירה הנוכחית.

    • מושתק

      ‫boolean אופציונלי

      ‫Chrome 45 ואילך

      האם להשתיק את הכרטיסייה.

    • openerTabId

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

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

    • מוצמד

      ‫boolean אופציונלי

      האם הכרטיסייה צריכה להיות מוצמדת.

    • נבחר

      ‫boolean אופציונלי

      הוצא משימוש

      צריך להשתמש בהדגשה.

      האם הכרטיסייה צריכה להיות מסומנת.

    • url

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

      כתובת URL שאליה הכרטיסייה תעבור. אין תמיכה בכתובות URL של JavaScript. במקום זאת, צריך להשתמש ב-scripting.executeScript.

החזרות

  • ‫Promise<Tab | undefined>

    ‫Chrome 88 ואילך

אירועים

onActivated

chrome.tabs.onActivated.addListener(
  callback: function,
)

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

פרמטרים

  • callback

    פונקציה

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

    (activeInfo: object) => void

    • activeInfo

      אובייקט

      • tabId

        number

        המזהה של הכרטיסייה שהפכה לפעילה.

      • windowId

        number

        המזהה של החלון שבו הכרטיסייה הפעילה השתנתה.

onAttached

chrome.tabs.onAttached.addListener(
  callback: function,
)

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

פרמטרים

  • callback

    פונקציה

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

    (tabId: number, attachInfo: object) => void

    • tabId

      number

    • attachInfo

      אובייקט

      • newPosition

        number

      • newWindowId

        number

onCreated

chrome.tabs.onCreated.addListener(
  callback: function,
)

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

פרמטרים

  • callback

    פונקציה

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

    (tab: Tab) => void

onDetached

chrome.tabs.onDetached.addListener(
  callback: function,
)

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

פרמטרים

  • callback

    פונקציה

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

    (tabId: number, detachInfo: object) => void

    • tabId

      number

    • detachInfo

      אובייקט

      • oldPosition

        number

      • oldWindowId

        number

onHighlighted

chrome.tabs.onHighlighted.addListener(
  callback: function,
)

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

פרמטרים

  • callback

    פונקציה

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

    (highlightInfo: object) => void

    • highlightInfo

      אובייקט

      • tabIds

        number[]

        כל הכרטיסיות המודגשות בחלון.

      • windowId

        number

        החלון שהכרטיסיות שלו השתנו.

onMoved

chrome.tabs.onMoved.addListener(
  callback: function,
)

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

פרמטרים

  • callback

    פונקציה

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

    (tabId: number, moveInfo: object) => void

    • tabId

      number

    • moveInfo

      אובייקט

      • fromIndex

        number

      • toIndex

        number

      • windowId

        number

onRemoved

chrome.tabs.onRemoved.addListener(
  callback: function,
)

מופעל כשסוגרים כרטיסייה.

פרמטרים

  • callback

    פונקציה

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

    (tabId: number, removeInfo: object) => void

    • tabId

      number

    • removeInfo

      אובייקט

      • isWindowClosing

        בוליאני

        הערך הוא True אם הכרטיסייה נסגרה כי חלון האב שלה נסגר.

      • windowId

        number

        החלון שהכרטיסייה שלו נסגרה.

onReplaced

chrome.tabs.onReplaced.addListener(
  callback: function,
)

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

פרמטרים

  • callback

    פונקציה

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

    (addedTabId: number, removedTabId: number) => void

    • addedTabId

      number

    • removedTabId

      number

onUpdated

chrome.tabs.onUpdated.addListener(
  callback: function,
)

מופעל כשכרטיסייה מתעדכנת.

פרמטרים

  • callback

    פונקציה

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

    (tabId: number, changeInfo: object, tab: Tab) => void

    • tabId

      number

    • changeInfo

      אובייקט

      • audible, אודיבל

        ‫boolean אופציונלי

        ‫Chrome 45 ואילך

        המצב החדש של האודיו בכרטיסייה.

      • autoDiscardable

        ‫boolean אופציונלי

        ‫Chrome 54 ואילך

        המצב החדש של הכרטיסייה, שניתן להשבתה אוטומטית.

      • דחית את

        ‫boolean אופציונלי

        ‫Chrome 54 ואילך

        המצב החדש של הכרטיסייה אחרי ההסרה.

      • favIconUrl

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

        כתובת ה-URL החדשה של סמל האתר בכרטיסייה.

      • במצב קפוא

        ‫boolean אופציונלי

        ‫Chrome 132 ואילך

        הסטטוס החדש של הכרטיסייה שהוקפאה.

      • groupId

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

        ‫Chrome 88 ואילך

        הקבוצה החדשה של הכרטיסייה.

      • mutedInfo

        ‫MutedInfo אופציונלי

        ‫Chrome 46 ואילך

        הסטטוס החדש של הכרטיסייה (השתקה) והסיבה לשינוי.

      • מוצמד

        ‫boolean אופציונלי

        המצב החדש של הכרטיסייה (מוצמדת או לא).

      • splitViewId

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

        ‫Chrome 140+‎

        התצוגה המפוצלת החדשה של הכרטיסייה.

      • status

        ‫TabStatus אופציונלי

        סטטוס הטעינה של הכרטיסייה.

      • title

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

        ‫Chrome 48 ואילך

        השם החדש של הכרטיסייה.

      • url

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

        כתובת ה-URL של הכרטיסייה אם היא השתנתה.

    • Tab

onZoomChange

chrome.tabs.onZoomChange.addListener(
  callback: function,
)

מופעל כשמבצעים זום בכרטיסייה.

פרמטרים

  • callback

    פונקציה

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

    (ZoomChangeInfo: object) => void

    • ZoomChangeInfo

      אובייקט

      • newZoomFactor

        number

      • oldZoomFactor

        number

      • tabId

        number

      • zoomSettings