chrome.browserAction

تاریخ به‌روزرسانی: 2026-09-25 ربات‌ها: noindex

توضیحات

از اکشن‌های مرورگر برای قرار دادن آیکون‌ها در نوار ابزار اصلی گوگل کروم، در سمت راست نوار آدرس، استفاده کنید. علاوه بر آیکون ، یک اکشن مرورگر می‌تواند شامل یک راهنما (tooltip) ، یک نشان (badge ) و یک پنجره بازشو (popup ) نیز باشد.

در دسترس بودن

≤ ام‌وی۲

در شکل زیر، مربع چندرنگ سمت راست نوار آدرس، آیکون مربوط به یک اقدام مرورگر است. یک پنجره‌ی بازشو (popup) در زیر آیکون قرار دارد.

اگر می‌خواهید آیکونی ایجاد کنید که همیشه فعال نباشد، به جای اکشن مرورگر، از اکشن صفحه استفاده کنید.

مانیفست

اکشن مرورگر خود را در مانیفست افزونه به این صورت ثبت کنید:

{
  "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
  },
  ...
}

شما می‌توانید هر اندازه‌ای را برای آیکون مورد استفاده در کروم تعیین کنید و کروم نزدیکترین اندازه را انتخاب کرده و آن را به اندازه مناسب برای پر کردن فضای ۱۶ قسمتی تغییر می‌دهد. با این حال، اگر اندازه دقیق مشخص نشده باشد، این تغییر اندازه می‌تواند باعث از دست رفتن جزئیات آیکون یا تار شدن آن شود.

از آنجایی که دستگاه‌هایی با ضرایب مقیاس کمتر رایج مانند ۱.۵x یا ۱.۲x رایج‌تر می‌شوند، توصیه می‌شود که اندازه‌های مختلفی برای آیکون‌های خود ارائه دهید. این همچنین تضمین می‌کند که اگر اندازه نمایش آیکون تغییر کرد، نیازی به انجام کار بیشتری برای ارائه آیکون‌های مختلف ندارید!

سینتکس قدیمی برای ثبت آیکون پیش‌فرض هنوز پشتیبانی می‌شود:

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

بخش‌هایی از رابط کاربری

یک اکشن مرورگر می‌تواند شامل یک آیکون ، یک راهنمای ابزار ، یک نشان و یک پنجره‌ی بازشو باشد.

آیکون

آیکون‌های عملیاتی مرورگر در کروم، عرض و ارتفاعی برابر با ۱۶ پیکسل (پیکسل مستقل از دستگاه) دارند. آیکون‌های بزرگ‌تر برای تناسب، تغییر اندازه می‌دهند، اما برای بهترین نتیجه، از یک آیکون مربعی با ۱۶ پیکسل استفاده کنید.

شما می‌توانید آیکون را به دو روش تنظیم کنید: استفاده از یک تصویر ثابت یا استفاده از عنصر canvas در HTML5. استفاده از تصاویر ثابت برای برنامه‌های ساده آسان‌تر است، اما می‌توانید با استفاده از عنصر canvas رابط‌های کاربری پویاتری - مانند انیمیشن روان - ایجاد کنید.

تصاویر استاتیک می‌توانند در هر فرمتی که WebKit می‌تواند نمایش دهد، از جمله BMP، GIF، ICO، JPEG یا PNG باشند. برای افزونه‌های unpacked، تصاویر باید در قالب PNG باشند.

برای تنظیم آیکون، از فیلد default_icon مربوط به browser_action در فایل مانیفست استفاده کنید، یا متد browserAction.setIcon را فراخوانی کنید.

برای نمایش صحیح آیکون زمانی که چگالی پیکسل صفحه نمایش (نسبت size_in_pixel / size_in_dip ) متفاوت از ۱ باشد، می‌توان آیکون را به صورت مجموعه‌ای از تصاویر با اندازه‌های مختلف تعریف کرد. تصویر واقعی برای نمایش از بین مجموعه‌ای انتخاب می‌شود که به بهترین شکل با اندازه پیکسل ۱۶ dip مطابقت داشته باشد. مجموعه آیکون می‌تواند شامل هر اندازه‌ای از مشخصات آیکون باشد و کروم مناسب‌ترین آن را انتخاب خواهد کرد.

راهنمای ابزار

برای تنظیم tooltip، از فیلد default_title مربوط به browser_action در فایل manifest استفاده کنید، یا متد browserAction.setTitle را فراخوانی کنید. می‌توانید رشته‌های مختص به زبان را برای فیلد default_title مشخص کنید؛ برای جزئیات بیشتر به Internationalization مراجعه کنید.

نشان

اکشن‌های مرورگر می‌توانند به صورت اختیاری یک نشان (badge) را نمایش دهند - متنی که روی آیکون قرار می‌گیرد. نشان‌ها به‌روزرسانی اکشن مرورگر را برای نمایش مقدار کمی اطلاعات در مورد وضعیت افزونه آسان می‌کنند.

از آنجا که نشان فضای محدودی دارد، باید ۴ کاراکتر یا کمتر داشته باشد.

متن و رنگ نشان را به ترتیب با استفاده از browserAction.setBadgeText و browserAction.setBadgeBackgroundColor تنظیم کنید.

اگر یک اقدام مرورگر دارای یک پنجره بازشو باشد، وقتی کاربر روی نماد افزونه کلیک می‌کند، پنجره بازشو ظاهر می‌شود. پنجره بازشو می‌تواند شامل هر محتوای HTML مورد نظر شما باشد و به طور خودکار اندازه آن متناسب با محتوای آن تنظیم می‌شود. پنجره بازشو نمی‌تواند کوچکتر از ۲۵x۲۵ و بزرگتر از ۸۰۰x۶۰۰ باشد.

برای افزودن یک پنجره پاپ‌آپ به اکشن مرورگر خود، یک فایل HTML با محتوای پنجره ایجاد کنید. فایل HTML را در فیلد default_popup از browser_action در مانیفست مشخص کنید، یا متد browserAction.setPopup را فراخوانی کنید.

نکات

برای بهترین تاثیر بصری، این دستورالعمل‌ها را دنبال کنید:

  • برای ویژگی‌هایی که در اکثر صفحات منطقی هستند، از اقدامات مرورگر استفاده کنید.
  • از اکشن‌های مرورگر برای ویژگی‌هایی که فقط برای چند صفحه معنی دارند استفاده نکنید . در عوض از اکشن‌های صفحه استفاده کنید.
  • از آیکون‌های بزرگ و رنگارنگی استفاده کنید که از فضای ۱۶x۱۶ اینچ نهایت استفاده را ببرند. آیکون‌های عملیاتی مرورگر باید کمی بزرگتر و سنگین‌تر از آیکون‌های عملیاتی صفحه به نظر برسند.
  • سعی نکنید آیکون منوی تک رنگ گوگل کروم را تقلید کنید. این کار با تم‌ها خوب کار نمی‌کند، و به هر حال، افزونه‌ها باید کمی برجسته باشند.
  • از شفافیت آلفا برای اضافه کردن لبه‌های نرم به آیکون خود استفاده کنید . از آنجا که بسیاری از افراد از تم‌ها استفاده می‌کنند، آیکون شما باید در رنگ‌های پس‌زمینه متنوع زیبا به نظر برسد.
  • مدام آیکون خود را متحرک نکنید . این فقط آزاردهنده است.

مثال‌ها

می‌توانید مثال‌های ساده‌ای از استفاده از اکشن‌های مرورگر را در دایرکتوری examples/api/browserAction بیابید. برای مثال‌های دیگر و کمک در مشاهده کد منبع، به Samples مراجعه کنید.

انواع

TabDetails

کروم ۸۸+

خواص

  • شناسه برگه

    شماره اختیاری

    شناسه‌ی تبی که وضعیت آن را جستجو می‌کنیم. اگر هیچ تبی مشخص نشده باشد، وضعیت غیرمرتبط با تب برگردانده می‌شود.

روش‌ها

disable()

وعده
chrome.browserAction.disable(
  tabId?: number,
  callback?: function,
)
: Promise<void>

عملکرد مرورگر را برای یک برگه غیرفعال می‌کند.

پارامترها

  • شناسه برگه

    شماره اختیاری

    شناسه‌ی برگه‌ای که عملکرد مرورگر برای آن تغییر می‌کند.

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

    پارامتر callback به شکل زیر است:

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

enable()

وعده
chrome.browserAction.enable(
  tabId?: number,
  callback?: function,
)
: Promise<void>

عملکرد مرورگر را برای یک تب فعال می‌کند. مقدار پیش‌فرض فعال است.

پارامترها

  • شناسه برگه

    شماره اختیاری

    شناسه‌ی برگه‌ای که عملکرد مرورگر برای آن تغییر می‌کند.

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

    پارامتر callback به شکل زیر است:

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

getBadgeBackgroundColor()

وعده
chrome.browserAction.getBadgeBackgroundColor(
  details: TabDetails,
  callback?: function,
)
: Promise<extensionTypes.ColorArray>

رنگ پس‌زمینه‌ی اکشن مرورگر را دریافت می‌کند.

پارامترها

بازگشت‌ها

  • کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

getBadgeText()

وعده
chrome.browserAction.getBadgeText(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

متن نشان مربوط به عملکرد مرورگر را دریافت می‌کند. اگر هیچ تبی مشخص نشده باشد، متن نشان غیرمرتبط با تب برگردانده می‌شود.

پارامترها

  • جزئیات
  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به شکل زیر است:

    (result: string) => void

    • نتیجه

      رشته

بازگشت‌ها

  • قول<string>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

getPopup()

وعده
chrome.browserAction.getPopup(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

سند HTML که به عنوان پنجره‌ی بازشو برای این اقدام مرورگر تنظیم شده است را دریافت می‌کند.

پارامترها

  • جزئیات
  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به شکل زیر است:

    (result: string) => void

    • نتیجه

      رشته

بازگشت‌ها

  • قول<string>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

getTitle()

وعده
chrome.browserAction.getTitle(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

عنوان اکشن مرورگر را دریافت می‌کند.

پارامترها

  • جزئیات
  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به شکل زیر است:

    (result: string) => void

    • نتیجه

      رشته

بازگشت‌ها

  • قول<string>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

setBadgeBackgroundColor()

وعده
chrome.browserAction.setBadgeBackgroundColor(
  details: object,
  callback?: function,
)
: Promise<void>

رنگ پس‌زمینه را برای نشان تنظیم می‌کند.

پارامترها

  • جزئیات

    شیء

    • رنگ

      آرایه‌ای از چهار عدد صحیح در محدوده‌ی ۰ تا ۲۵۵ که رنگ RGBA نشان را تشکیل می‌دهند. همچنین می‌تواند رشته‌ای با مقدار رنگ هگز CSS باشد؛ برای مثال، #FF0000 یا #F00 (قرمز). رنگ‌ها را با شفافیت کامل نمایش می‌دهد.

    • شناسه برگه

      شماره اختیاری

      تغییر را به زمانی که یک تب خاص انتخاب شده است محدود می‌کند. با بسته شدن تب، به طور خودکار بازنشانی می‌شود.

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

    پارامتر callback به شکل زیر است:

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

setBadgeText()

وعده
chrome.browserAction.setBadgeText(
  details: object,
  callback?: function,
)
: Promise<void>

متن نشان را برای عملکرد مرورگر تنظیم می‌کند. نشان در بالای آیکون نمایش داده می‌شود.

پارامترها

  • جزئیات

    شیء

    • شناسه برگه

      شماره اختیاری

      تغییر را به زمانی که یک تب خاص انتخاب شده است محدود می‌کند. با بسته شدن تب، به طور خودکار بازنشانی می‌شود.

    • متن

      رشته اختیاری

      هر تعداد کاراکتری را می‌توان ارسال کرد، اما فقط حدود چهار کاراکتر می‌توانند در فضای خالی جا شوند. اگر یک رشته خالی ( '' ) ارسال شود، متن نشان پاک می‌شود. اگر tabId مشخص شده باشد و text برابر با null باشد، متن مربوط به تب مشخص شده پاک می‌شود و به طور پیش‌فرض متن نشان سراسری را در نظر می‌گیرد.

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

    پارامتر callback به شکل زیر است:

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

setIcon()

وعده
chrome.browserAction.setIcon(
  details: object,
  callback?: function,
)
: Promise<void>

آیکون را برای اکشن مرورگر تنظیم می‌کند. آیکون می‌تواند به عنوان مسیر یک فایل تصویری، به عنوان داده‌های پیکسلی از یک عنصر canvas یا به عنوان دیکشنری یکی از این موارد مشخص شود. یا path یا ویژگی 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}' است.

    • شناسه برگه

      شماره اختیاری

      تغییر را به زمانی که یک تب خاص انتخاب شده است محدود می‌کند. با بسته شدن تب، به طور خودکار بازنشانی می‌شود.

  • تماس برگشتی

    تابع اختیاری

    پارامتر callback به شکل زیر است:

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۱۱۶+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

setPopup()

وعده
chrome.browserAction.setPopup(
  details: object,
  callback?: function,
)
: Promise<void>

تنظیم می‌کند که سند HTML هنگام کلیک کاربر روی آیکون اکشن مرورگر، به صورت پنجره‌ی پاپ‌آپ باز شود.

پارامترها

  • جزئیات

    شیء

    • پنجره بازشو

      رشته

      مسیر نسبی فایل HTML برای نمایش در پنجره‌ی بازشو. اگر روی رشته‌ی خالی ( '' ) تنظیم شود، هیچ پنجره‌ی بازشو نمایش داده نمی‌شود.

    • شناسه برگه

      شماره اختیاری

      تغییر را به زمانی که یک تب خاص انتخاب شده است محدود می‌کند. با بسته شدن تب، به طور خودکار بازنشانی می‌شود.

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

    پارامتر callback به شکل زیر است:

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

setTitle()

وعده
chrome.browserAction.setTitle(
  details: object,
  callback?: function,
)
: Promise<void>

عنوان عملیات مرورگر را تنظیم می‌کند. این عنوان در راهنمای ابزار نمایش داده می‌شود.

پارامترها

  • جزئیات

    شیء

    • شناسه برگه

      شماره اختیاری

      تغییر را به زمانی که یک تب خاص انتخاب شده است محدود می‌کند. با بسته شدن تب، به طور خودکار بازنشانی می‌شود.

    • عنوان

      رشته

      رشته‌ای که مرورگر باید هنگام قرار گرفتن ماوس روی آن نمایش دهد.

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

    پارامتر callback به شکل زیر است:

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۸۸+

    Promiseها فقط برای Manifest V3 و نسخه‌های بعدی پشتیبانی می‌شوند، سایر پلتفرم‌ها باید از callbackها استفاده کنند.

رویدادها

onClicked

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

زمانی اجرا می‌شود که روی آیکون عملیات مرورگر کلیک شود. اگر عملیات مرورگر دارای پنجره‌ی پاپ‌آپ باشد، اجرا نمی‌شود.

پارامترها

  • تماس برگشتی

    تابع

    پارامتر callback به شکل زیر است:

    (tab: tabs.Tab) => void