chrome.browserAction

תיאור

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

זמינות

≤ MV2

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

אם רוצים ליצור סמל שלא תמיד פעיל, צריך להשתמש בפעולת דף במקום בפעולה בדפדפן.

מניפסט

רושמים את פעולת הדפדפן במניפסט של התוסף באופן הבא:

{
  "name": "My extension",
  ...
  "browser_action": {
    "default_icon": {                // optional
      "16": "images/icon16.png",     // optional
      "24": "images/icon24.png",     // optional
      "32": "images/icon32.png"      // optional
    },
    "default_title": "Google Mail",  // optional, shown in tooltip
    "default_popup": "popup.html"    // optional
  },
  ...
}

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

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

עדיין יש תמיכה בתחביר הישן לרישום סמל ברירת המחדל:

{
  "name": "My extension",
  ...
  "browser_action": {
    ...
    "default_icon": "images/icon32.png"  // optional
    // equivalent to "default_icon": { "32": "images/icon32.png" }
  },
  ...
}

חלקים בממשק המשתמש

פעולת דפדפן יכולה לכלול סמל, הסבר קצר, תג וחלון קופץ.

סמל

סמלי הפעולות בדפדפן ב-Chrome הם בגודל 16 dips (פיקסלים שאינם תלויים במכשיר) ברוחב ובגובה. סמלים גדולים יותר מותאמים לגודל המתאים, אבל כדי לקבל את התוצאות הטובות ביותר, מומלץ להשתמש בסמל מרובע בגודל 16dip.

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

תמונות סטטיות יכולות להיות בכל פורמט ש-WebKit יכול להציג, כולל BMP,‏ GIF,‏ ICO,‏ JPEG או PNG. בתוספים לא מוצקים, התמונות חייבות להיות בפורמט PNG.

כדי להגדיר את הסמל, משתמשים בשדה default_icon של browser_action ב-manifest, או קוראים לשיטה browserAction.setIcon.

כדי להציג את הסמל בצורה תקינה כשצפיפות הפיקסלים במסך (היחס size_in_pixel / size_in_dip) שונה מ-1, אפשר להגדיר את הסמל כקבוצת תמונות בגדלים שונים. התמונה בפועל שמוצגת תיבחר מהקבוצה כך שתתאים בצורה הטובה ביותר לגודל הפיקסלים של 16dip. קבוצת הסמלים יכולה להכיל מפרט של סמל בכל גודל, ו-Chrome יבחר את הסמל המתאים ביותר.

הסבר קצר

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

תג

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

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

מגדירים את הטקסט והצבע של התג באמצעות browserAction.setBadgeText ו-browserAction.setBadgeBackgroundColor, בהתאמה.

אם לפעולה בדפדפן יש חלון קופץ, החלון הקופץ מופיע כשהמשתמש לוחץ על סמל התוסף. חלון הקופץ יכול להכיל כל תוכן HTML שתרצו, והוא יותאם באופן אוטומטי לגודל התוכן שלו. חלון הקופץ לא יכול להיות קטן מ-25x25 ולא גדול מ-800x600.

כדי להוסיף חלון קופץ לפעולה בדפדפן, יוצרים קובץ HTML עם התוכן של החלון הקופץ. מציינים את קובץ ה-HTML בשדה default_popup של browser_action במניפסט, או קוראים לשיטה browserAction.setPopup.

טיפים

כדי להשיג את ההשפעה החזותית הטובה ביותר, כדאי לפעול לפי ההנחיות הבאות:

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

דוגמאות

דוגמאות פשוטות לשימוש בפעולות בדפדפן זמינות בספרייה examples/api/browserAction. דוגמאות נוספות ועזרה בהצגת קוד המקור זמינות במאמר דוגמאות.

סוגים

TabDetails

גרסה 88 ואילך של Chrome

מאפיינים

  • tabId

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

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

Methods

disable()

Promise
chrome.browserAction.disable(
  tabId?: number,
  callback?: function,
)

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

פרמטרים

  • tabId

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

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

  • callback

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

    Chrome מגרסה 67 ואילך

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

    () => void

החזרות

  • Promise<void>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

enable()

Promise
chrome.browserAction.enable(
  tabId?: number,
  callback?: function,
)

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

פרמטרים

  • tabId

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

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

  • callback

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

    Chrome מגרסה 67 ואילך

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

    () => void

החזרות

  • Promise<void>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getBadgeBackgroundColor()

Promise
chrome.browserAction.getBadgeBackgroundColor(
  details: TabDetails,
  callback?: function,
)

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

פרמטרים

  • פרטים
  • callback

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

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

    (result: ColorArray) => void

החזרות

  • גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getBadgeText()

Promise
chrome.browserAction.getBadgeText(
  details: TabDetails,
  callback?: function,
)

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

פרמטרים

  • פרטים
  • callback

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

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

    (result: string) => void

    • תוצאה

      מחרוזת

החזרות

  • Promise<string>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getPopup()

Promise
chrome.browserAction.getPopup(
  details: TabDetails,
  callback?: function,
)

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

פרמטרים

  • פרטים
  • callback

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

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

    (result: string) => void

    • תוצאה

      מחרוזת

החזרות

  • Promise<string>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getTitle()

Promise
chrome.browserAction.getTitle(
  details: TabDetails,
  callback?: function,
)

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

פרמטרים

  • פרטים
  • callback

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

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

    (result: string) => void

    • תוצאה

      מחרוזת

החזרות

  • Promise<string>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

setBadgeBackgroundColor()

Promise
chrome.browserAction.setBadgeBackgroundColor(
  details: object,
  callback?: function,
)

הגדרת צבע הרקע של התג.

פרמטרים

  • פרטים

    אובייקט

    • color [צבע]

      מחרוזת | ColorArray

      מערך של ארבעה מספרים שלמים בטווח 0-255 שמרכיבים את צבע ה-RGBA של התג. יכול להיות גם מחרוזת עם ערך צבע הקסדצימלי של CSS. לדוגמה, #FF0000 או #F00 (אדום). עיבוד צבעים באטימות מלאה.

    • tabId

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

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

  • callback

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

    Chrome מגרסה 67 ואילך

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

    () => void

החזרות

  • Promise<void>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

setBadgeText()

Promise
chrome.browserAction.setBadgeText(
  details: object,
  callback?: function,
)

הגדרת הטקסט של התג עבור הפעולה בדפדפן. התג מוצג מעל הסמל.

פרמטרים

  • פרטים

    אובייקט

    • tabId

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

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

    • text

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

      אפשר להעביר כל מספר תווים, אבל רק כ-4 תווים יכולים להיכנס למרחב. אם מועברת מחרוזת ריקה (''), הטקסט של התג נמחק. אם צוין tabId ו-text הוא null, הטקסט בכרטיסייה שצוינה יימחק והטקסט של התג הגלובלי יוגדר כברירת מחדל.

  • callback

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

    Chrome מגרסה 67 ואילך

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

    () => void

החזרות

  • Promise<void>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

setIcon()

Promise
chrome.browserAction.setIcon(
  details: object,
  callback?: function,
)

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

פרמטרים

  • פרטים

    אובייקט

    • imageData

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

      אובייקט ImageData או מילון {size -> ImageData} שמייצג סמל שרוצים להגדיר. אם הסמל צוין כמילון, התמונה שבה נעשה שימוש נבחרת בהתאם לצפיפות הפיקסלים במסך. אם מספר הפיקסלים בתמונה שמתאימים ליחידת שטח אחת במסך שווה ל-scale, תיבחר תמונה בגודל scale * n, כאשר n הוא גודל הסמל בממשק המשתמש. צריך לציין תמונה אחת לפחות. הערה: הביטוי 'details.imageData = foo' שווה לביטוי 'details.imageData = {'16': foo}'

    • נתיב

      מחרוזת | אובייקט אופציונלי

      נתיב יחסי של תמונה או מילון {size -> relative image path} שמצביע על סמל שרוצים להגדיר. אם הסמל צוין כמילון, התמונה שבה נעשה שימוש נבחרת בהתאם לצפיפות הפיקסלים במסך. אם מספר הפיקסלים בתמונה שמתאימים ליחידה אחת במרחב המסך שווה ל-scale, נבחרת תמונה בגודל scale * n, כאשר n הוא גודל הסמל בממשק המשתמש. צריך לציין תמונה אחת לפחות. הערה: הערך 'details.path = foo' שווה ל-'details.path = {'16': foo}'

    • tabId

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

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

  • callback

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

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

    () => void

החזרות

  • Promise<void>

    גרסה 116 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

setPopup()

Promise
chrome.browserAction.setPopup(
  details: object,
  callback?: function,
)

מגדיר את מסמך ה-HTML כך שייפתח כחלון קופץ כשהמשתמש לוחץ על סמל הפעולה בדפדפן.

פרמטרים

  • פרטים

    אובייקט

    • פריט קופץ

      מחרוזת

      הנתיב היחסי לקובץ ה-HTML שרוצים להציג בחלון קופץ. אם הערך מוגדר למחרוזת הריקה (''), לא יוצג חלון קופץ.

    • tabId

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

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

  • callback

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

    Chrome מגרסה 67 ואילך

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

    () => void

החזרות

  • Promise<void>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

setTitle()

Promise
chrome.browserAction.setTitle(
  details: object,
  callback?: function,
)

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

פרמטרים

  • פרטים

    אובייקט

    • tabId

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

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

    • title

      מחרוזת

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

  • callback

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

    Chrome מגרסה 67 ואילך

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

    () => void

החזרות

  • Promise<void>

    גרסה 88 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

אירועים

onClicked

chrome.browserAction.onClicked.addListener(
  callback: function,
)

האירוע מופעל כשלוחצים על סמל של פעולת דפדפן. האירוע לא מופעל אם לפעולת הדפדפן יש חלון קופץ.

פרמטרים

  • callback

    פונקציה

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

    (tab: tabs.Tab) => void