شرح
از میانای برنامهسازی کاربردی chrome.tabs برای تعامل با سیستم برگه مرورگر استفاده کنید. میتوانید از این API برای ایجاد، اصلاح، و بازآرایی برگهها در مرورگر استفاده کنید.
Tabs API نهتنها ویژگیهایی برای دستکاری و مدیریت کردن برگهها ارائه میدهد، بلکه میتواند زبان برگه را تشخیص دهد، نماگرفت بگیرد، و با دستورگان محتوای برگه ارتباط برقرار کند.
اجازهها
اکثر ویژگیها برای استفاده به هیچ اجازهای نیاز ندارند. برای مثال: ایجاد برگه جدید، بار کردن مجدد برگه، پیمایش به نشانی وب دیگر، و غیره.
هنگام کار با 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"
});
}
});
دریافت زبانه فعلی
این مثال نشان میدهد که چگونه یک کارگر سرویس افزونه میتواند برگه فعال را از پنجرهای که درحالحاضر متمرکز است (یا پنجرهای که اخیراً متمرکز شده است، اگر هیچ پنجره 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.");
}
});
}
ارسال پیام به اسکریپت محتوای برگه انتخابشده
این مثال نشان میدهد که چگونه یک کارمند خدمات افزونه میتواند بااستفاده از 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
وضعیت بیصدا بودن برگه و دلیل آخرین تغییر وضعیت.
مشخصات
-
extensionId
رشته اختیاری
شناسه افزونهای که وضعیت بیصدا را تغییر داده است. اگر افزونه دلیل آخرین تغییر وضعیت بیصدا نباشد، تنظیم نمیشود.
-
بیصدا شد
بولی
اینکه آیا برگه بیصدا شده است (از پخش صدا جلوگیری شده است). ممکن است زبانه بیصدا شده باشد، حتی اگر صدایی پخش نکرده باشد یا درحالحاضر صدایی پخش نکند. معادل با اینکه آیا نشانگر صوتی «بیصدا» نشان داده میشود یا نه.
-
دلیل
MutedInfoReason اختیاری
دلیل بیصدا یا باصدا شدن برگه. اگر وضعیت بیصدا کردن برگه هرگز تغییر نکرده باشد، تنظیم نمیشود.
MutedInfoReason
رویدادی که باعث تغییر وضعیت بیصدا شده است.
شمارشی
«کاربر»
کنش ورودی کاربر وضعیت بیصدا را تنظیم کرده است.
"capture"
Tab capture was started, forcing a muted state change.
"extension"
افزونهای که با فیلد extensionId شناسایی میشود، وضعیت بیصدا را تنظیم کرده است.
Tab
مشخصات
-
فعال
بولی
اینکه برگه در پنجرهاش فعال است یا نه. لزوماً به این معنی نیست که پنجره متمرکز است.
-
audible
بولی اختیاری
Chrome نسخه ۴۵ و بالاتر browser.* از Chrome نسخه ۱۴۸اینکه آیا برگه در چند ثانیه گذشته صدا تولید کرده است یا نه (اما اگر بیصدا هم شده باشد ممکن است شنیده نشود). معادل اینکه آیا نشانگر «صدای بلندگو» نشان داده میشود یا نه.
-
autoDiscardable
بولی
Chrome نسخه ۵۴ و بالاتر browser.* از Chrome نسخه ۱۴۸اینکه آیا وقتی منابع کم است، مرورگر میتواند زبانه را بهطور خودکار کنار بگذارد یا نه.
-
نادیده گرفته شد
بولی
Chrome نسخه ۵۴ و بالاتر browser.* از Chrome نسخه ۱۴۸اینکه آیا زبانه کنار گذاشته شده است یا نه. برگه دورریختهشده برگهای است که محتوای آن از حافظه تخلیه شده است، اما هنوز در نوار برگه قابلمشاهده است. دفعه بعد که فعال شود، محتوای آن مجدداً بار میشود.
-
favIconUrl
رشته اختیاری
نشانی وب نماد وبسایت برگه. این ویژگی فقط درصورتی وجود دارد که افزونه اجازه
"tabs"یا اجازههای میزبان را برای صفحه داشته باشد. اگر برگه درحال بار شدن باشد، ممکن است رشته خالی باشد. -
ثابتشده
بولی
Chrome 132+ browser.* از Chrome 148اینکه زبانه ثابت شده است یا نه. زبانه منجمدشده نمیتواند تکالیف را اجرا کند، ازجمله کنترلکنندههای رویداد یا زمانسنجها. در نوار برگه قابلمشاهده است و محتوای آن در حافظه بار شده است. با فعالسازی، از حالت تعلیق خارج میشود.
-
groupId
شماره
Chrome 88+ browser.* از Chrome 148شناسه گروهی که برگه به آن تعلق دارد.
-
ارتفاع
شماره اختیاری
ارتفاع برگه به پیکسل.
-
برجستهشده
بولی
اینکه برگه برجسته شده است یا نه.
-
id
شماره اختیاری
شناسه برگه. شناسههای برگه در یک جلسه مرورگر یکتا هستند. در برخی شرایط ممکن است شناسهای به برگه اختصاص داده نشود؛ برای مثال، هنگام پرسمان برگههای خارجی بااستفاده از میانای برنامهسازی کاربردی
sessions، که در این صورت ممکن است شناسه جلسه وجود داشته باشد. شناسه برگه را میتوان برای برنامهها و پنجرههای devtools رویchrome.tabs.TAB_ID_NONEتنظیم کرد. -
ناشناس
بولی
اینکه زبانه در پنجره ناشناس باشد یا نه.
-
شاخص
شماره
نمایه مبتنی بر صفر زبانه در پنجره آن.
-
lastAccessed
شماره
Chrome نسخه ۱۲۱ و بالاتر browser.* از Chrome نسخه ۱۴۸آخرین باری که برگه در پنجرهاش فعال شد، بهصورت تعداد میلیثانیهها از مبدأ زمانی.
-
mutedInfo
MutedInfo اختیاری
Chrome نسخه ۴۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وضعیت بیصدا بودن برگه و دلیل آخرین تغییر وضعیت.
-
openerTabId
شماره اختیاری
شناسه زبانهای که این زبانه را باز کرده است (درصورت وجود). این ویژگی فقط درصورتی وجود دارد که برگه بازکننده هنوز وجود داشته باشد.
-
pendingUrl
رشته اختیاری
Chrome نسخه ۷۹ به بالا browser.* از Chrome نسخه ۱۴۸نشانی وبی که برگه قبلاز تأیید به آن هدایت میشود. این ویژگی فقط درصورتی وجود دارد که افزونه اجازه
"tabs"یا اجازههای میزبان را برای صفحه داشته باشد و ناوبری معلقی وجود داشته باشد. -
پین شده
بولی
اینکه زبانه سنجاق شده است یا نه.
-
انتخابشده
بولی
منسوخشدهلطفاً از
tabs.Tab.highlightedاستفاده کنید.نشان میدهد برگه انتخاب شده است یا نه.
-
sessionId
رشته اختیاری
شناسه جلسه برای شناسایی منحصربهفرد برگهای که از
sessionsAPI بهدست آمده است استفاده میشود. -
splitViewId
شماره اختیاری
Chrome 140+ browser.* از Chrome 148شناسه «نمای دونیمه» که زبانه به آن تعلق دارد.
-
وضعیت
TabStatus اختیاری
وضعیت بار کردن برگه.
-
عنوان
رشته اختیاری
عنوان برگه. این ویژگی فقط درصورتی وجود دارد که افزونه اجازه
"tabs"یا اجازههای میزبان را برای صفحه داشته باشد. -
نشانی وب
رشته اختیاری
آخرین نشانی وب ثبتشده قاب اصلی برگه. این ویژگی فقط درصورتی وجود دارد که افزونه اجازه
"tabs"یا اجازههای میزبان را برای صفحه داشته باشد. اگر زبانه هنوز ثبت نشده باشد، ممکن است رشته خالی باشد.Tab.pendingUrlرا نیز ببینید. -
عرض
شماره اختیاری
عرض برگه به پیکسل.
-
windowId
شماره
شناسه پنجرهای که برگه را دربردارد.
TabStatus
وضعیت بار کردن برگه.
شمارشی
«unloaded»
«درحال بار کردن»
«تکمیل»
WindowType
نوع پنجره.
شمارشی
«عادی»
"popup"
"panel"
«برنامه»
"devtools"
ZoomSettings
تعریف میکند که تغییرات بزرگنمایی در برگه چگونه و در چه دامنهای مدیریت شود.
مشخصات
-
defaultZoomFactor
شماره اختیاری
Chrome نسخه ۴۳ و بالاتر browser.* از Chrome نسخه ۱۴۸برای برگرداندن سطح بزرگنمایی پیشفرض برای برگه فعلی در تماسها با tabs.getZoomSettings استفاده میشود.
-
حالت حملونقل
ZoomSettingsMode اختیاری
تعیین میکند که تغییرات بزرگنمایی چگونه مدیریت شود، یعنی کدام نهاد مسئول مقیاسبندی واقعی صفحه است؛ پیشفرض
automaticاست. -
محدوده
ZoomSettingsScope اختیاری
تعیین میکند که آیا تغییرات بزرگنمایی برای مبدأ صفحه باقی بماند یا فقط در این برگه اعمال شود؛ در حالت
automatic، پیشفرضper-originاست و درغیراینصورتper-tabاست.
ZoomSettingsMode
تعیین میکند که تغییرات بزرگنمایی چگونه مدیریت شود، یعنی کدام نهاد مسئول مقیاسبندی واقعی صفحه است؛ پیشفرض automatic است.
شمارشی
«خودکار»
تغییرات بزرگنمایی بهطور خودکار توسط مرورگر انجام میشود.
«manual»
مدیریت خودکار تغییرات بزرگنمایی را لغو میکند. رویداد onZoomChange همچنان ارسال خواهد شد و مسئولیت گوش دادن به این رویداد و مقیاسبندی دستی صفحه برعهده افزونه است. این حالت از بزرگنمایی per-origin پشتیبانی نمیکند، بنابراین تنظیم بزرگنمایی scope را نادیده میگیرد و per-tab را فرض میکند.
«غیرفعال»
همه بزرگنماییها را در برگه غیرفعال میکند. برگه به سطح بزرگنمایی پیشفرض برمیگردد و همه تغییرات بزرگنمایی انجامشده نادیده گرفته میشود.
ZoomSettingsScope
تعیین میکند که آیا تغییرات بزرگنمایی برای مبدأ صفحه باقی بماند یا فقط در این برگه اعمال شود؛ در حالت automatic، پیشفرض per-origin است و درغیراینصورت per-tab است.
شمارشی
«per-origin»
تغییرات بزرگنمایی در مبدأ صفحه بزرگنماییشده باقی میماند، یعنی همه برگههای دیگری که به همان مبدأ پیمایش کردهاند نیز بزرگنمایی میشوند. علاوهبراین، تغییرات بزرگنمایی per-origin با مبدأ ذخیره میشود، یعنی هنگام پیمایش به صفحههای دیگر در همان مبدأ، همه آنها با همان ضریب بزرگنمایی بزرگ میشوند. per-origin scope is only available in the automatic mode.
«per-tab»
تغییرات بزرگنمایی فقط در این برگه اعمال میشود و تغییرات بزرگنمایی در برگههای دیگر بر بزرگنمایی این برگه تأثیر نمیگذارد. همچنین، per-tab تغییرات بزرگنمایی در پیمایش بازنشانی میشود؛ پیمایش کردن برگه همیشه صفحهها را با ضریب بزرگنمایی per-origin بار میکند.
مشخصات
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
حداکثر تعداد دفعاتی که captureVisibleTab میتواند در هر ثانیه فراخوانی شود. captureVisibleTab گران است و نباید زیاد فراخوانی شود.
مقدار
۲
SPLIT_VIEW_ID_NONE
شناسهای که نشاندهنده عدم وجود برگه تقسیم است.
مقدار
-۱
TAB_ID_NONE
شناسهای که نشاندهنده عدم وجود برگه مرورگر است.
مقدار
-۱
TAB_INDEX_NONE
نمایهای که نشاندهنده عدم وجود نمایه برگه در tab_strip است.
مقدار
-۱
روشها
captureVisibleTab()
browser.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
): Promise<string>
ناحیه قابلمشاهده زبانه فعال فعلی را در پنجره مشخصشده ضبط میکند. برای فراخوانی این روش، افزونه باید اجازه <all_urls> یا اجازه activeTab را داشته باشد. علاوهبر سایتهایی که افزونهها معمولاً میتوانند به آنها دسترسی داشته باشند، این روش به افزونهها اجازه میدهد سایتهای حساسی را که درغیراینصورت محدود شدهاند ضبط کنند، ازجمله صفحههای chrome:-scheme، صفحههای افزونههای دیگر، و نشانیهای وب data:. این سایتهای حساس را فقط میتوان با اجازه activeTab ضبط کرد. نشانیهای وب فایل ممکن است فقط درصورتی ضبط شوند که به افزونه اجازه دسترسی به فایل داده شده باشد.
پارامترها
-
windowId
شماره اختیاری
پنجره مقصد. بهطور پیشفرض روی پنجره فعلی تنظیم شده است.
-
گزینهها
ImageDetails اختیاری
بازگشتیها
-
Promise<string>
Chrome 88+ browser.* از Chrome 148
connect()
browser.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
به اسکریپت(های) محتوا در برگه مشخصشده متصل میشود. رویداد runtime.onConnect در هر اسکریپت محتوایی که در برگه مشخصشده برای افزونه فعلی اجرا میشود، فعال میشود. برای جزئیات بیشتر، پیامرسانی اسکریپت محتوا را ببینید.
پارامترها
-
tabId
شماره
-
connectInfo
شیء اختیاری
-
documentId
رشته اختیاری
Chrome 106+ browser.* از Chrome 148درگاهی را بهجای همه قابهای برگه، برای سند خاصی که با
documentIdشناسایی شده است باز کنید. -
frameId
شماره اختیاری
درگاهی را برای قاب خاصی که با
frameIdشناسایی میشود باز کنید، نه برای همه قابهای موجود در برگه. -
نام
رشته اختیاری
به onConnect برای اسکریپتهای محتوایی که به رویداد اتصال گوش میدهند منتقل میشود.
-
بازگشتیها
-
درگاهی که میتواند برای برقراری ارتباط با اسکریپتهای محتوای درحال اجرا در برگه مشخصشده استفاده شود. اگر برگه بسته شود یا وجود نداشته باشد، رویداد
runtime.Portدرگاه فعال میشود.
پارامترها
-
createProperties
شیء
-
فعال
بولی اختیاری
آیا زبانه باید به زبانه فعال در پنجره تبدیل شود یا نه. بر اینکه پنجره متمرکز باشد یا نه تأثیری ندارد (
windows.updateرا ببینید). پیشفرضtrueاست. -
شاخص
شماره اختیاری
جایگاهی که برگه باید در پنجره داشته باشد. مقدار ارائهشده به بین صفر و تعداد برگههای پنجره محدود شده است.
-
openerTabId
شماره اختیاری
شناسه زبانهای که این زبانه را باز کرده است. اگر مشخص شده باشد، زبانه بازکننده باید در همان پنجره زبانه جدیداً ایجادشده باشد.
-
پین شده
بولی اختیاری
آیا زبانه باید سنجاق شود یا نه. پیشفرضها به
false -
انتخابشده
بولی اختیاری
منسوخشدهلطفاً از فعال استفاده کنید.
آیا برگه باید به برگه انتخابشده در پنجره تبدیل شود. پیشفرضها به
true -
splitWithTabId
شماره اختیاری
Chrome نسخه ۱۵۵ و بالاترشناسه زبانه موجود برای ایجاد نمای تقسیمشده با آن. درصورت مشخص شدن، برگه «تقسیم با» باید شرایط زیر را داشته باشد:
- نباید زبانهای باشد که قبلاً تقسیم شده است.
- باید در همان پنجرهای باشد که زبانه جدید ایجاد شده است.
- اگر
windowIdمشخص شده باشد، باید با شناسه پنجره برگه تقسیمشده یکسان باشد. - اگر
indexمشخص شده باشد، باید نمایهای مجاور برگه تقسیمشده باشد و بر موقعیت نسبی برگه جدیداً ایجادشده تأثیر خواهد گذاشت.
-
نشانی وب
رشته اختیاری
نشانی وب برای پیمایش اولیه زبانه به آن. نشانیهای وب کاملاً واجد شرایط باید شامل طرحواره باشند (یعنی، «http://www.google.com»، نه «www.google.com»). نشانیهای وب نسبی نسبت به صفحه فعلی در افزونه نسبی هستند. بهطور پیشفرض روی «صفحه زبانه جدید» تنظیم شده است.
-
windowId
شماره اختیاری
پنجرهای که برگه جدید در آن ایجاد میشود. بهطور پیشفرض روی پنجره فعلی تنظیم شده است.
-
بازگشتیها
-
Promise<Tab>
Chrome 88+ browser.* از Chrome 148
createSplit()
browser.tabs.createSplit(
tabIds: [number, number],
): Promise<number>
دو زبانه موجود را به «نمای دونیمه» تقسیم میکند.
پارامترها
-
tabIds
[number, number]
آرایهای از دقیقاً دو شناسه زبانه برای جفت کردن در «نمای دونیمه». همه برگهها باید شرایط زیر را داشته باشند:
باید مجاور باشند. نباید ازقبل در نمای دونیمه باشند. باید وضعیتهای
windowId،pinned، وgroupIdمطابقی داشته باشند.
بازگشتیها
-
Promise<number>
detectLanguage()
browser.tabs.detectLanguage(
tabId?: number,
): Promise<string>
زبان اصلی محتوای برگه را تشخیص میدهد.
پارامترها
-
tabId
شماره اختیاری
بهطور پیشفرض روی برگه فعال پنجره فعلی تنظیم شده است.
بازگشتیها
-
Promise<string>
Chrome 88+ browser.* از Chrome 148
discard()
browser.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
زبانهای را از حافظه حذف میکند. برگههای دورریختهشده همچنان در نوار برگه نمایان هستند و هنگام فعال شدن مجدداً بار میشوند.
پارامترها
-
tabId
شماره اختیاری
شناسه برگهای که باید حذف شود. اگر مشخص شده باشد، زبانه کنار گذاشته میشود مگراینکه فعال باشد یا قبلاً کنار گذاشته شده باشد. اگر حذف شود، مرورگر کماهمیتترین برگه را کنار میگذارد. اگر زبانه دورانداختنی وجود نداشته باشد، ممکن است این کار ناموفق باشد.
بازگشتیها
-
Promise<Tab | undefined>
Chrome 88+ browser.* از Chrome 148پساز تکمیل عملیات، حلوفصل میشود.
duplicate()
browser.tabs.duplicate(
tabId: number,
): Promise<Tab | undefined>
برگهای را تکرار میکند.
پارامترها
-
tabId
شماره
شناسه برگهای که باید تکرار شود.
بازگشتیها
-
Promise<Tab | undefined>
Chrome 88+ browser.* از Chrome 148
get()
browser.tabs.get(
tabId: number,
): Promise<Tab>
جزئیات مربوط به برگه مشخصشده را بازیابی میکند.
پارامترها
-
tabId
شماره
بازگشتیها
-
Promise<Tab>
Chrome 88+ browser.* از Chrome 148
getCurrent()
browser.tabs.getCurrent(): Promise<Tab | undefined>
زبانه را که این فراخوانی اسکریپت از آن انجام میشود دریافت میکند. اگر از بافت غیربرگهای (مثلاً صفحه پسزمینه یا نمای بالاپر) فراخوانی شود، undefined را برمیگرداند.
بازگشتیها
-
Promise<Tab | undefined>
Chrome 88+ browser.* از Chrome 148
getZoom()
browser.tabs.getZoom(
tabId?: number,
): Promise<number>
ضریب بزرگنمایی فعلی برگه مشخصشده را دریافت میکند.
پارامترها
-
tabId
شماره اختیاری
شناسه زبانهای که ضریب بزرگنمایی فعلی از آن دریافت میشود؛ بهطور پیشفرض زبانه فعال پنجره فعلی است.
بازگشتیها
-
Promise<number>
Chrome 88+ browser.* از Chrome 148پساز واکشی، با ضریب بزرگنمایی فعلی برگه حل میشود.
getZoomSettings()
browser.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
تنظیمات بزرگنمایی فعلی برگه مشخصشده را دریافت میکند.
پارامترها
-
tabId
شماره اختیاری
شناسه برگه برای دریافت تنظیمات بزرگنمایی فعلی؛ بهطور پیشفرض روی برگه فعال پنجره فعلی تنظیم شده است.
بازگشتیها
-
Promise<ZoomSettings>
Chrome 88+ browser.* از Chrome 148با تنظیمات بزرگنمایی فعلی برگه حل میشود.
goBack()
browser.tabs.goBack(
tabId?: number,
): Promise<void>
به صفحه قبلی بروید، اگر صفحهای دردسترس باشد.
پارامترها
-
tabId
شماره اختیاری
شناسه برگه برای پیمایش به عقب؛ بهطور پیشفرض برگه انتخابشده پنجره فعلی است.
بازگشتیها
-
Promise<void>
Chrome 88+ browser.* از Chrome 148
goForward()
browser.tabs.goForward(
tabId?: number,
): Promise<void>
رفتن به صفحه بعدی، درصورت وجود.
پارامترها
-
tabId
شماره اختیاری
شناسه برگهای که باید به جلو پیمایش شود؛ بهطور پیشفرض برگه انتخابشده پنجره فعلی است.
بازگشتیها
-
Promise<void>
Chrome 88+ browser.* از Chrome 148
group()
browser.tabs.group(
options: object,
): Promise<number>
یک یا چند برگه را به گروه مشخصشده اضافه میکند، یا اگر گروهی مشخص نشده باشد، برگههای دادهشده را به گروه جدیدی که ایجاد شده است اضافه میکند.
پارامترها
-
گزینهها
شیء
-
createProperties
شیء اختیاری
پیکربندیهای ایجاد گروه. اگر groupId قبلاً مشخص شده باشد، نمیتوان از آن استفاده کرد.
-
windowId
شماره اختیاری
پنجره گروه جدید. بهطور پیشفرض روی پنجره فعلی تنظیم شده است.
-
-
groupId
شماره اختیاری
شناسه گروهی که برگهها به آن اضافه میشود. اگر مشخص نشده باشد، گروه جدیدی ایجاد خواهد شد.
-
tabIds
number | [number, ...number[]]
شناسه برگه یا فهرست شناسههای برگه برای افزودن به گروه مشخصشده.
-
بازگشتیها
-
Promise<number>
highlight()
browser.tabs.highlight(
highlightInfo: object,
): Promise<windows.Window>
زبانههای دادهشده را برجسته میکند و روی اولین زبانه گروه کانونی میشود. اگر برگه مشخصشده درحالحاضر فعال باشد، بهنظر میرسد کاری انجام نمیشود.
پارامترها
-
highlightInfo
شیء
-
tabs
number | number[]
یک یا چند نمایه زبانه برای برجسته کردن.
-
windowId
شماره اختیاری
پنجرهای که حاوی زبانهها است.
-
بازگشتیها
-
Promise<windows.Window>
Chrome 88+ browser.* از Chrome 148
move()
browser.tabs.move(
tabIds: number | number[],
moveProperties: object,
): Promise<Tab | Tab[]>
یک یا چند برگه را به موقعیت جدیدی در پنجره خود یا به پنجره جدیدی منتقل میکند. توجه داشته باشید که برگهها فقط میتوانند به پنجرههای عادی (window.type === "normal") منتقل شوند یا از آنها خارج شوند.
پارامترها
-
tabIds
number | number[]
شناسه برگه یا فهرست شناسههای برگه برای جابهجا کردن.
-
moveProperties
شیء
-
شاخص
شماره
موقعیتی که پنجره به آن منتقل میشود. از
-1برای قرار دادن برگه در انتهای پنجره استفاده کنید. -
windowId
شماره اختیاری
بهطور پیشفرض روی پنجرهای تنظیم میشود که برگه درحالحاضر در آن قرار دارد.
-
query()
browser.tabs.query(
queryInfo: object,
): Promise<Tab[]>
همه برگههایی را که ویژگیهای مشخصشده دارند، یا همه برگهها را درصورتیکه ویژگیای مشخص نشده باشد، دریافت میکند.
پارامترها
-
queryInfo
شیء
-
فعال
بولی اختیاری
آیا برگهها در پنجرههایشان فعال هستند یا نه.
-
audible
بولی اختیاری
Chrome نسخه ۴۵ و بالاتر browser.* از Chrome نسخه ۱۴۸آیا زبانهها شنیدنی هستند.
-
autoDiscardable
بولی اختیاری
Chrome نسخه ۵۴ و بالاتر browser.* از Chrome نسخه ۱۴۸آیا وقتی منابع کم است، مرورگر میتواند برگهها را بهطور خودکار کنار بگذارد.
-
currentWindow
بولی اختیاری
آیا برگهها در پنجره فعلی هستند یا نه.
-
نادیده گرفته شد
بولی اختیاری
Chrome نسخه ۵۴ و بالاتر browser.* از Chrome نسخه ۱۴۸آیا برگهها دور انداخته شدهاند. برگه دورریختهشده برگهای است که محتوای آن از حافظه تخلیه شده است، اما هنوز در نوار برگه قابلمشاهده است. دفعه بعد که فعال شود، محتوای آن مجدداً بار میشود.
-
ثابتشده
بولی اختیاری
Chrome 132+ browser.* از Chrome 148اینکه زبانهها ثابت شدهاند یا نه. زبانه منجمدشده نمیتواند تکالیف را اجرا کند، ازجمله کنترلکنندههای رویداد یا زمانسنجها. در نوار برگه قابلمشاهده است و محتوای آن در حافظه بار شده است. با فعالسازی، از حالت تعلیق خارج میشود.
-
groupId
شماره اختیاری
Chrome 88+ browser.* از Chrome 148شناسه گروهی که زبانهها در آن قرار دارند، یا
tabGroups.TAB_GROUP_ID_NONEبرای زبانههای بدون گروه. -
برجستهشده
بولی اختیاری
اینکه برگهها برجسته شدهاند یا نه.
-
شاخص
شماره اختیاری
موقعیت زبانهها در پنجرههایشان.
-
lastFocusedWindow
بولی اختیاری
آیا برگهها در آخرین پنجره کانونیشده هستند یا نه.
-
بیصدا شد
بولی اختیاری
Chrome نسخه ۴۵ و بالاتر browser.* از Chrome نسخه ۱۴۸اینکه زبانهها بیصدا هستند یا نه.
-
پین شده
بولی اختیاری
اینکه برگهها سنجاق شدهاند یا نه.
-
splitViewId
شماره اختیاری
Chrome 140+ browser.* از Chrome 148شناسه «نمای دونیمه» که زبانهها در آن قرار دارند، یا
tabs.SPLIT_VIEW_ID_NONEبرای زبانههایی که در «نمای دونیمه» نیستند. -
وضعیت
TabStatus اختیاری
وضعیت بار کردن برگه.
-
عنوان
رشته اختیاری
عنوانهای صفحه را با الگویی مطابقت دهید. اگر افزونه اجازه
"tabs"یا اجازههای میزبان را برای صفحه نداشته باشد، این ویژگی نادیده گرفته میشود. -
نشانی وب
رشته | رشته[] اختیاری
زبانهها را با یک یا چند الگوی نشانی وب مطابقت دهید. شناسههای قطعه مطابقت ندارند. اگر افزونه اجازه
"tabs"یا اجازههای میزبان را برای صفحه نداشته باشد، این ویژگی نادیده گرفته میشود. -
windowId
شماره اختیاری
شناسه پنجره اصلی، یا
windows.WINDOW_ID_CURRENTبرای پنجره فعلی. -
windowType
WindowType اختیاری
نوع پنجرهای که برگهها در آن قرار دارند.
-
بازگشتیها
-
Promise<Tab[]>
Chrome 88+ browser.* از Chrome 148
reload()
browser.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise<void>
بار کردن مجدد زبانه.
پارامترها
-
tabId
شماره اختیاری
شناسه برگه برای بار کردن مجدد؛ بهطور پیشفرض برگه انتخابشده پنجره فعلی است.
-
reloadProperties
شیء اختیاری
-
bypassCache
بولی اختیاری
تعیین میکند که حافظه پنهان محلی دور زده شود یا نه. پیشفرضها به
false.
-
بازگشتیها
-
Promise<void>
Chrome 88+ browser.* از Chrome 148
remove()
browser.tabs.remove(
tabIds: number | number[],
): Promise<void>
یک یا چند برگه را میبندد.
پارامترها
-
tabIds
number | number[]
شناسه برگه یا فهرست شناسههای برگه برای بستن.
بازگشتیها
-
Promise<void>
Chrome 88+ browser.* از Chrome 148
sendMessage()
browser.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): Promise<any>
یک پیام به اسکریپت(های) محتوا در برگه مشخصشده ارسال میکند. رویداد runtime.onMessage در هر اسکریپت محتوایی که در برگه مشخصشده برای افزونه فعلی اجرا میشود، فعال میشود.
پارامترها
-
tabId
شماره
-
پیام
همه
پیام برای ارسال. این پیام باید شیء JSON-ifiable باشد.
-
گزینهها
شیء اختیاری
بازگشتیها
-
Promise<any>
Chrome نسخه ۹۹ و بالاتر browser.* از Chrome نسخه ۱۴۸Promise that resolves with the response from the content script. اگر هنگام اتصال به برگه مشخصشده خطایی رخ دهد، promise رد خواهد شد.
setZoom()
browser.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise<void>
برگه مشخصشده را بزرگنمایی میکند.
پارامترها
-
tabId
شماره اختیاری
شناسه زبانهای که باید بزرگنمایی شود؛ بهطور پیشفرض زبانه فعال پنجره فعلی است.
-
zoomFactor
شماره
عامل بزرگنمایی جدید. مقدار
0زبانه را روی ضریب بزرگنمایی پیشفرض فعلی آن تنظیم میکند. مقادیر بزرگتر از0ضریب بزرگنمایی (احتمالاً غیرپیشفرض) را برای برگه مشخص میکند.
بازگشتیها
-
Promise<void>
Chrome 88+ browser.* از Chrome 148پساز تغییر ضریب بزرگنمایی، حل میشود.
setZoomSettings()
browser.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise<void>
تنظیمات بزرگنمایی را برای برگه مشخصشده تنظیم میکند، که نحوه مدیریت تغییرات بزرگنمایی را تعریف میکند. این تنظیمات هنگام پیمایش برگه به پیشفرضها بازنشانی میشوند.
پارامترها
-
tabId
شماره اختیاری
شناسه برگه برای تغییر تنظیمات بزرگنمایی؛ بهطور پیشفرض روی برگه فعال پنجره فعلی تنظیم شده است.
-
zoomSettings
تعریف میکند که تغییرات بزرگنمایی چگونه و در چه دامنهای مدیریت میشوند.
بازگشتیها
-
Promise<void>
Chrome 88+ browser.* از Chrome 148پساز تغییر تنظیمات بزرگنمایی برطرف میشود.
ungroup()
browser.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise<void>
یک یا چند برگه را از گروههای مربوطهشان برمیدارد. اگر گروهی خالی شود، حذف میشود.
پارامترها
-
tabIds
number | [number, ...number[]]
شناسه زبانه یا فهرست شناسههای زبانه برای برداشتن از گروههای مربوطه.
بازگشتیها
-
Promise<void>
unsplit()
browser.tabs.unsplit(
splitViewId: number,
): Promise<void>
زبانهها را در «نمای دونیمه» به زبانههای مستقل تفکیک میکند.
پارامترها
-
splitViewId
شماره
شناسه «نمای دونیمه» برای جدا کردن.
بازگشتیها
-
Promise<void>
update()
browser.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
ویژگیهای برگه را تغییر میدهد. مشخصاتی که در updateProperties مشخص نشدهاند اصلاح نمیشوند.
پارامترها
-
tabId
شماره اختیاری
بهطور پیشفرض روی برگه انتخابشده پنجره فعلی تنظیم شده است.
-
updateProperties
شیء
-
فعال
بولی اختیاری
آیا زبانه باید فعال باشد یا نه. بر اینکه پنجره در کانون توجه باشد یا نه تأثیری ندارد (
windows.updateرا ببینید). -
autoDiscardable
بولی اختیاری
Chrome نسخه ۵۴ و بالاتر browser.* از Chrome نسخه ۱۴۸اینکه آیا وقتی منابع کم است، برگه باید بهطور خودکار توسط مرورگر کنار گذاشته شود یا نه.
-
برجستهشده
بولی اختیاری
برگه را به انتخاب فعلی اضافه یا از آن حذف میکند.
-
بیصدا شد
بولی اختیاری
Chrome نسخه ۴۵ و بالاتر browser.* از Chrome نسخه ۱۴۸آیا برگه باید بیصدا شود یا نه.
-
openerTabId
شماره اختیاری
شناسه زبانهای که این زبانه را باز کرده است. اگر مشخص شده باشد، زبانه بازکننده باید در همان پنجره این زبانه باشد.
-
پین شده
بولی اختیاری
آیا زبانه باید سنجاق شود یا نه.
-
انتخابشده
بولی اختیاری
منسوخشدهلطفاً از برجسته استفاده کنید.
آیا برگه باید انتخاب شود.
-
نشانی وب
رشته اختیاری
نشانی وبی که برگه به آن پیمایش میکند. نشانیهای وب جاوا اسکریپت پشتیبانی نمیشود؛ بهجای آن از
scripting.executeScriptاستفاده کنید.
-
بازگشتیها
-
Promise<Tab | undefined>
Chrome 88+ browser.* از Chrome 148
رویدادها
onActivated
browser.tabs.onActivated.addListener(
callback: function,
)
وقتی زبانه فعال در پنجره تغییر میکند، فعال میشود. توجه داشته باشید که ممکن است نشانی وب برگه در زمان فعال شدن این رویداد تنظیم نشده باشد، اما میتوانید به رویدادهای onUpdated گوش دهید تا هنگام تنظیم نشانی وب مطلع شوید.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(activeInfo: object) => void
-
activeInfo
شیء
-
tabId
شماره
شناسه زبانهای که فعال شده است.
-
windowId
شماره
شناسه پنجرهای که زبانه فعال در آن تغییر کرده است.
-
-
onAttached
browser.tabs.onAttached.addListener(
callback: function,
)
وقتی برگهای به پنجرهای پیوست میشود، مثلاً بهدلیل جابهجایی بین پنجرهها، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(tabId: number, attachInfo: object) => void
-
tabId
شماره
-
attachInfo
شیء
-
newPosition
شماره
-
newWindowId
شماره
-
-
onCreated
browser.tabs.onCreated.addListener(
callback: function,
)
وقتی زبانهای ایجاد میشود، فعال میشود. توجه داشته باشید که ممکن است نشانی وب زبانه و عضویت گروه زبانه در زمان فعال شدن این رویداد تنظیم نشود، اما میتوانید به رویدادهای onUpdated گوش دهید تا وقتی نشانی وب تنظیم شد یا زبانه به گروه زبانه اضافه شد، مطلع شوید.
onDetached
browser.tabs.onDetached.addListener(
callback: function,
)
وقتی برگهای از پنجره جدا میشود، فعال میشود؛ برای مثال، چون بین پنجرهها جابهجا شده است.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(tabId: number, detachInfo: object) => void
-
tabId
شماره
-
detachInfo
شیء
-
oldPosition
شماره
-
oldWindowId
شماره
-
-
onHighlighted
browser.tabs.onHighlighted.addListener(
callback: function,
)
وقتی زبانههای برجستهشده یا انتخابشده در پنجرهای تغییر میکند، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(highlightInfo: object) => void
-
highlightInfo
شیء
-
tabIds
عدد[]
همه برگههای برجستهشده در پنجره.
-
windowId
شماره
پنجرهای که زبانههای آن تغییر کرده است.
-
-
onMoved
browser.tabs.onMoved.addListener(
callback: function,
)
وقتی برگهای در پنجره جابهجا میشود، فعال میشود. فقط یک رویداد جابهجایی اجرا میشود که نشاندهنده برگهای است که کاربر مستقیماً جابهجا کرده است. رویدادهای انتقال برای برگههای دیگری که باید در پاسخ به برگه منتقلشده بهصورت دستی منتقل شوند، فعال نمیشوند. وقتی برگهای بین پنجرهها جابهجا میشود، این رویداد اجرا نمیشود؛ برای جزئیات، tabs.onDetached را ببینید.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(tabId: number, moveInfo: object) => void
-
tabId
شماره
-
moveInfo
شیء
-
fromIndex
شماره
-
toIndex
شماره
-
windowId
شماره
-
-
onRemoved
browser.tabs.onRemoved.addListener(
callback: function,
)
وقتی برگهای بسته میشود، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(tabId: number, removeInfo: object) => void
-
tabId
شماره
-
removeInfo
شیء
-
isWindowClosing
بولی
وقتی برگه بسته شده باشد چون پنجره اصلی آن بسته شده است، درست است.
-
windowId
شماره
پنجرهای که برگه آن بسته شده است.
-
-
onReplaced
browser.tabs.onReplaced.addListener(
callback: function,
)
وقتی برگهای بهدلیل پیشپرداز یا فوری با برگه دیگری جایگزین میشود، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(addedTabId: number, removedTabId: number) => void
-
addedTabId
شماره
-
removedTabId
شماره
-
onUpdated
browser.tabs.onUpdated.addListener(
callback: function,
)
وقتی زبانهای بهروز میشود، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
شماره
-
changeInfo
شیء
-
audible
بولی اختیاری
Chrome نسخه ۴۵ و بالاتر browser.* از Chrome نسخه ۱۴۸وضعیت شنیداری جدید برگه.
-
autoDiscardable
بولی اختیاری
Chrome نسخه ۵۴ و بالاتر browser.* از Chrome نسخه ۱۴۸وضعیت جدید برگه برای دور انداختن خودکار.
-
نادیده گرفته شد
بولی اختیاری
Chrome نسخه ۵۴ و بالاتر browser.* از Chrome نسخه ۱۴۸وضعیت جدید زبانه دور انداختهشده.
-
favIconUrl
رشته اختیاری
نشانی وب نماد وبسایت جدید برگه.
-
ثابتشده
بولی اختیاری
Chrome 132+ browser.* از Chrome 148وضعیت جدید زبانه فریز شده.
-
groupId
شماره اختیاری
Chrome 88+ browser.* از Chrome 148گروه جدید برگه.
-
mutedInfo
MutedInfo اختیاری
Chrome نسخه ۴۶ و بالاتر browser.* از Chrome نسخه ۱۴۸وضعیت بیصدای جدید برگه و دلیل تغییر.
-
پین شده
بولی اختیاری
وضعیت سنجاقشده جدید برگه.
-
splitViewId
شماره اختیاری
Chrome 140+ browser.* از Chrome 148«نمای دونیمه» جدید زبانه.
-
وضعیت
TabStatus اختیاری
وضعیت بار کردن برگه.
-
عنوان
رشته اختیاری
Chrome نسخه ۴۸ و بالاتر browser.* از Chrome نسخه ۱۴۸عنوان جدید برگه.
-
نشانی وب
رشته اختیاری
نشانی وب برگه درصورت تغییر.
-
-
جهش
-
onZoomChange
browser.tabs.onZoomChange.addListener(
callback: function,
)
وقتی زبانه زوم میشود، فعال میشود.
پارامترها
-
تماس برگشتی
عملکرد
پارامتر
callbackبهصورت زیر است:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
شیء
-
newZoomFactor
شماره
-
oldZoomFactor
شماره
-
tabId
شماره
-
zoomSettings
-
-