chrome.pageAction

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

توضیحات

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

در دسترس بودن

≤ ام‌وی۲

چند مثال:

  • در فید RSS این صفحه مشترک شوید
  • از عکس‌های این صفحه یک اسلایدشو بسازید

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

اقدامات صفحه پنهان به رنگ خاکستری نمایش داده می‌شوند. برای مثال، فید RSS زیر خاکستری است، زیرا نمی‌توانید در فید صفحه فعلی مشترک شوید:

لطفاً به جای آن، استفاده از یک اقدام مرورگر را در نظر بگیرید تا کاربران همیشه بتوانند با افزونه شما تعامل داشته باشند.

مانیفست

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

{
  "name": "My extension",
  ...
  "page_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",
  ...
  "page_action": {
    ...
    "default_icon": "images/icon32.png"  // optional
    // equivalent to "default_icon": { "32": "images/icon32.png" }
  },
  ...
}

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

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

شما با استفاده از متدهای pageAction.show و pageAction.hide به ترتیب یک اکشن صفحه را ظاهر و خاکستری می‌کنید. به طور پیش‌فرض، یک اکشن صفحه خاکستری به نظر می‌رسد. وقتی آن را نمایش می‌دهید، تبی را که آیکون باید در آن ظاهر شود، مشخص می‌کنید. آیکون تا زمانی که تب بسته شود یا شروع به نمایش URL متفاوتی کند (مثلاً به دلیل کلیک کاربر روی یک لینک)، قابل مشاهده باقی می‌ماند.

نکات

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

  • از اقدامات صفحه برای ویژگی‌هایی استفاده کنید که فقط برای چند صفحه معنی دارند.
  • از اقدامات صفحه برای ویژگی‌هایی که برای اکثر صفحات منطقی هستند استفاده نکنید . در عوض از اقدامات مرورگر استفاده کنید.
  • مدام آیکون خود را متحرک نکنید . این فقط آزاردهنده است.

انواع

ImageDataType

داده‌های پیکسلی برای یک تصویر. باید یک شیء ImageData باشد (برای مثال، از یک عنصر canvas ).

نوع

داده تصویر

TabDetails

کروم ۸۸+

خواص

  • شناسه برگه

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

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

روش‌ها

getPopup()

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

سند html را به عنوان پنجره بازشو برای اکشن این صفحه تنظیم می‌کند.

پارامترها

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

    تابع اختیاری

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

    (result: string) => void

    • نتیجه

      رشته

بازگشت‌ها

  • قول<string>

    کروم ۱۰۱+

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

getTitle()

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

عنوان اکشن صفحه را دریافت می‌کند.

پارامترها

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

    تابع اختیاری

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

    (result: string) => void

    • نتیجه

      رشته

بازگشت‌ها

  • قول<string>

    کروم ۱۰۱+

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

hide()

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

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

پارامترها

  • شناسه برگه

    شماره

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

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

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

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۱۰۱+

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

setIcon()

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

آیکون را برای اکشن صفحه تنظیم می‌کند. آیکون را می‌توان به عنوان مسیر یک فایل تصویری یا به عنوان داده‌های پیکسلی از یک عنصر بوم، یا به عنوان دیکشنری یکی از آنها مشخص کرد. یا مسیر یا ویژگی 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.pageAction.setPopup(
  details: object,
  callback?: function,
)
: Promise<void>

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

پارامترها

  • جزئیات

    شیء

    • پنجره بازشو

      رشته

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

    • شناسه برگه

      شماره

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

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

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

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۱۰۱+

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

setTitle()

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

عنوان عملیات صفحه را تنظیم می‌کند. این عنوان در یک راهنمای ابزار (tooltip) بالای عملیات صفحه نمایش داده می‌شود.

پارامترها

  • جزئیات

    شیء

    • شناسه برگه

      شماره

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

    • عنوان

      رشته

      رشته راهنمای ابزار.

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

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

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۱۰۱+

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

show()

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

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

پارامترها

  • شناسه برگه

    شماره

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

  • تماس برگشتی

    تابع اختیاری

    کروم ۶۷+

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

    () => void

بازگشت‌ها

  • قول<void>

    کروم ۱۰۱+

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

رویدادها

onClicked

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

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

پارامترها

  • تماس برگشتی

    تابع

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

    (tab: tabs.Tab) => void