الوصف
استخدِم واجهة برمجة التطبيقات chrome.tabs للتفاعل مع نظام علامات التبويب في المتصفّح. يمكنك استخدام واجهة برمجة التطبيقات هذه لإنشاء علامات التبويب وتعديلها وإعادة ترتيبها في المتصفّح.
لا توفّر واجهة 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"
});
}
});
الحصول على علامة التبويب الحالية
يوضّح هذا المثال كيف يمكن لأداة معالجة الخدمات في إضافة استرداد علامة التبويب النشطة من النافذة المركّز عليها حاليًا (أو النافذة التي تم التركيز عليها مؤخرًا، إذا لم يتم التركيز على أي نوافذ 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"
بدأ تسجيل الشاشة، ما أدّى إلى فرض تغيير في حالة كتم الصوت.
"extension"
حدّدت إضافة، تم تحديدها من خلال الحقل extensionId، حالة كتم الصوت.
Tab
الخصائص
-
نشطة
قيمة منطقية
تُستخدَم لتحديد ما إذا كانت علامة التبويب نشطة في نافذتها. لا يعني ذلك بالضرورة أنّ النافذة مركَّز عليها.
-
تطبيق audible
boolean اختياري
Chrome 45 والإصدارات الأحدثتُستخدَم لتحديد ما إذا كانت علامة التبويب قد أصدرت صوتًا خلال الثواني القليلة الماضية (ولكن قد لا يُسمع الصوت إذا تم كتمه أيضًا). هذا الحقل مكافئ لما إذا كان مؤشر "صوت المتحدث" معروضًا.
-
autoDiscardable
قيمة منطقية
الإصدار 54 من Chrome أو إصدار أحدثتحدّد هذه السمة ما إذا كان بإمكان المتصفّح تجاهل علامة التبويب تلقائيًا عندما تكون الموارد منخفضة.
-
تم التجاهل
قيمة منطقية
الإصدار 54 من Chrome أو إصدار أحدثتُستخدَم لتحديد ما إذا تم تجاهل علامة التبويب. علامة التبويب التي تم تجاهلها هي علامة تبويب تم إلغاء تحميل محتواها من الذاكرة، ولكنها لا تزال مرئية في شريط علامات التبويب. ويتم إعادة تحميل محتواه في المرة التالية التي يتم فيها تفعيله.
-
favIconUrl
سلسلة اختيارية
تمثّل هذه السمة عنوان URL الخاص بالرمز المفضّل لعلامة التبويب. لا تظهر هذه السمة إلا إذا كانت الإضافة لديها إذن
"tabs"أو أذونات مضيف للصفحة. وقد تكون أيضًا سلسلة فارغة إذا كانت علامة التبويب قيد التحميل. -
لا يستجيب
قيمة منطقية
الإصدار 132 من Chrome والإصدارات الأحدثتُستخدَم لتحديد ما إذا كانت علامة التبويب معطَّلة. لا يمكن لعلامة التبويب المجمّدة تنفيذ المهام، بما في ذلك معالِجات الأحداث أو المؤقتات. تكون مرئية في شريط علامات التبويب ويتم تحميل محتواها في الذاكرة. ويتم إلغاء تجميده عند التفعيل.
-
groupId
الرقم
الإصدار 88 من Chrome والإصدارات الأحدثتمثّل معرّف المجموعة التي تنتمي إليها علامة التبويب.
-
الارتفاع
number اختياري
تمثّل هذه السمة ارتفاع علامة التبويب بالبكسل.
-
بارزة
قيمة منطقية
تُستخدَم لتحديد ما إذا كانت علامة التبويب مميّزة أم لا.
-
id
number اختياري
معرّف علامة التبويب تكون أرقام تعريف علامات التبويب فريدة ضمن جلسة المتصفّح. في بعض الحالات، قد لا يتمّ تخصيص رقم تعريف لعلامة تبويب، مثلاً عند طلب علامات تبويب خارجية باستخدام واجهة برمجة التطبيقات
sessions، وفي هذه الحالة قد يتوفّر معرّف جلسة. يمكن أيضًا ضبط معرّف علامة التبويب علىchrome.tabs.TAB_ID_NONEلتطبيقات ونوافذ أدوات المطوّرين. -
incognito
قيمة منطقية
تُستخدَم لتحديد ما إذا كانت علامة التبويب في نافذة تصفُّح متخفٍ.
-
الفهرس
الرقم
الفهرس المبدوء من الصفر لعلامة التبويب ضمن النافذة
-
lastAccessed
الرقم
الإصدار 121 من Chrome والإصدارات الأحدثآخر مرة أصبحت فيها علامة التبويب نشطة في نافذتها، وذلك كعدد المللي ثانية منذ بدء الحقبة
-
mutedInfo
MutedInfo اختيارية
Chrome 46 والإصدارات الأحدثحالة كتم صوت علامة التبويب وسبب آخر تغيير في الحالة
-
openerTabId
number اختياري
تمثّل هذه السمة رقم تعريف علامة التبويب التي فتحت علامة التبويب الحالية، إن وُجدت. لا تتوفّر هذه السمة إلا إذا كانت علامة التبويب التي فتحت النافذة لا تزال متوفّرة.
-
pendingUrl
سلسلة اختيارية
الإصدار 79 من Chrome والإصدارات الأحدثعنوان URL الذي تنتقل إليه علامة التبويب قبل أن يتم تثبيته. لا تظهر هذه السمة إلا إذا كانت الإضافة لديها إذن
"tabs"أو أذونات مضيف للصفحة وكان هناك عملية تنقّل معلّقة. -
تم تثبيته
قيمة منطقية
تُستخدَم لتحديد ما إذا كانت علامة التبويب مثبّتة.
-
تم الاختيار
قيمة منطقية
تمّت إزالة هذا العموديُرجى استخدام
tabs.Tab.highlighted.تُستخدَم لتحديد ما إذا كانت علامة التبويب محددة.
-
sessionId
سلسلة اختيارية
معرّف الجلسة المستخدَم لتحديد علامة تبويب تم الحصول عليها من واجهة برمجة التطبيقات
sessionsبشكل فريد. -
splitViewId
number اختياري
Chrome 140 أو إصدار أحدثمعرّف "تقسيم العرض" الذي تنتمي إليه علامة التبويب
-
status
TabStatus اختياري
حالة تحميل علامة التبويب
-
title
سلسلة اختيارية
تمثّل هذه السمة عنوان علامة التبويب. لا تظهر هذه السمة إلا إذا كانت الإضافة لديها إذن
"tabs"أو أذونات مضيف للصفحة. -
url
سلسلة اختيارية
عنوان URL الأخير الذي تم إرساله للإطار الرئيسي لعلامة التبويب. لا تظهر هذه السمة إلا إذا كانت الإضافة لديها إذن
"tabs"أو أذونات مضيف للصفحة. قد تكون سلسلة فارغة إذا لم يتم تثبيت علامة التبويب بعد. يمكنك الاطّلاع أيضًا علىTab.pendingUrl. -
العرض
number اختياري
تمثّل هذه السمة عرض علامة التبويب بالبكسل.
-
windowId
الرقم
رقم تعريف النافذة التي تحتوي على علامة التبويب
TabStatus
حالة تحميل علامة التبويب
تعداد
"unloaded"
"loading"
"complete"
WindowType
نوع النافذة
تعداد
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير في علامة تبويب ونطاقها.
الخصائص
-
defaultZoomFactor
number اختياري
Chrome 43 والإصدارات الأحدثتُستخدَم لعرض مستوى التكبير أو التصغير التلقائي لعلامة التبويب الحالية في طلبات tabs.getZoomSettings.
-
الوضع
ZoomSettingsMode اختياري
تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير، أي العنصر المسؤول عن تغيير حجم الصفحة الفعلي، والقيمة التلقائية هي
automatic. -
نطاق
ZoomSettingsScope اختياري
تحدّد هذه السياسة ما إذا كانت تغييرات التكبير/التصغير تظل سارية على مصدر الصفحة، أو ما إذا كانت تسري فقط في علامة التبويب هذه. القيمة التلقائية هي
per-originفي وضعautomatic، وper-tabفي الحالات الأخرى.
ZoomSettingsMode
تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير، أي العنصر المسؤول عن تغيير حجم الصفحة الفعلي، والقيمة التلقائية هي automatic.
تعداد
"تلقائي"
يتعامل المتصفّح تلقائيًا مع تغييرات التكبير/التصغير.
"يدوي"
تتجاوز هذه القيمة المعالجة التلقائية لتغييرات التكبير/التصغير. سيظلّ يتم إرسال الحدث onZoomChange، ويكون على الإضافة الاستماع إلى هذا الحدث وتغيير حجم الصفحة يدويًا. لا يتيح هذا الوضع التكبير أو التصغير per-origin، وبالتالي يتجاهل إعداد التكبير أو التصغير scope ويفترض per-tab.
"disabled"
يؤدي إلى إيقاف جميع عمليات التكبير في علامة التبويب. تعود علامة التبويب إلى مستوى التكبير أو التصغير التلقائي، ويتم تجاهل جميع محاولات تغيير مستوى التكبير أو التصغير.
ZoomSettingsScope
تحدّد هذه السياسة ما إذا كانت تغييرات التكبير/التصغير تظل سارية على مصدر الصفحة، أو ما إذا كانت تسري فقط في علامة التبويب هذه. القيمة التلقائية هي per-origin في وضع automatic، وper-tab في الحالات الأخرى.
تعداد
"لكل مصدر"
تظل تغييرات التكبير/التصغير محفوظة في مصدر الصفحة المكبّرة، أي أنّه يتم أيضًا تكبير/تصغير جميع علامات التبويب الأخرى التي تم الانتقال إليها من المصدر نفسه. بالإضافة إلى ذلك، يتم حفظ تغييرات التكبير/التصغير per-origin مع المصدر، ما يعني أنّه عند الانتقال إلى صفحات أخرى في المصدر نفسه، يتم تكبير/تصغير جميعها بمقدار التكبير/التصغير نفسه. لا يتوفّر نطاق per-origin إلا في الوضع automatic.
"لكل علامة تبويب"
لا تسري تغييرات التكبير أو التصغير إلا في علامة التبويب هذه، ولا تؤثّر تغييرات التكبير أو التصغير في علامات التبويب الأخرى في تكبير أو تصغير علامة التبويب هذه. بالإضافة إلى ذلك، تتم إعادة ضبط تغييرات التكبير/التصغير per-tab عند التنقّل، إذ يؤدي التنقّل في علامة تبويب إلى تحميل الصفحات دائمًا بعوامل التكبير/التصغير per-origin.
الخصائص
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
الحدّ الأقصى لعدد المرات التي يمكن فيها استدعاء captureVisibleTab في الثانية captureVisibleTab مكلفة ويجب عدم استدعاؤها بشكل متكرّر.
القيمة
2
SPLIT_VIEW_ID_NONE
معرّف يمثّل عدم توفّر علامة تبويب مقسّمة
القيمة
-1
TAB_ID_NONE
معرّف يمثّل عدم توفّر علامة تبويب متصفّح
القيمة
-1
TAB_INDEX_NONE
فهرس يمثّل عدم توفّر فهرس علامات تبويب في tab_strip.
القيمة
-1
الطُرق
captureVisibleTab()
chrome.tabs.captureVisibleTab(
windowId?: number,
options?: ImageDetails,
): Promise<string>
تلتقط هذه الطريقة المنطقة المرئية من علامة التبويب النشطة حاليًا في النافذة المحدّدة. لاستدعاء هذه الطريقة، يجب أن يكون لدى الإضافة إذن <all_urls> أو إذن activeTab. بالإضافة إلى المواقع الإلكترونية التي يمكن للإضافات الوصول إليها عادةً، تتيح هذه الطريقة للإضافات التقاط المواقع الإلكترونية الحساسة التي تكون محظورة بخلاف ذلك، بما في ذلك صفحات chrome:-scheme وصفحات الإضافات الأخرى وعناوين URL التي تبدأ بـ data:. لا يمكن التقاط هذه المواقع الإلكترونية الحساسة إلا من خلال إذن activeTab. لا يمكن تسجيل عناوين URL للملفات إلا إذا تم منح الإضافة إذن الوصول إلى الملفات.
المعلمات
-
windowId
number اختياري
نافذة الاستهداف القيمة التلقائية هي النافذة الحالية.
-
الخيارات
ImageDetails اختيارية
المرتجعات
-
Promise<string>
الإصدار 88 من Chrome والإصدارات الأحدث
connect()
chrome.tabs.connect(
tabId: number,
connectInfo?: object,
): runtime.Port
يربط النص البرمجي للمحتوى بعلامة التبويب المحدّدة. يتم تشغيل الحدث runtime.onConnect في كل نص برمجي للمحتوى يتم تشغيله في علامة التبويب المحدّدة للإضافة الحالية. لمزيد من التفاصيل، يُرجى الاطّلاع على مراسلة البرامج النصية للمحتوى.
المعلمات
-
tabId
الرقم
-
connectInfo
كائن اختياري
-
documentId
سلسلة اختيارية
الإصدار 106 من Chrome والإصدارات الأحدثفتح منفذ لمستند محدّد يتم تحديده بواسطة
documentIdبدلاً من جميع الإطارات في علامة التبويب -
frameId
number اختياري
فتح منفذ إلى إطار محدّد يتم تحديده بواسطة
frameIdبدلاً من جميع الإطارات في علامة التبويب -
الاسم
سلسلة اختيارية
يتم تمريرها إلى onConnect لبرامج النصوص الخاصة بالمحتوى التي تستمع إلى حدث الاتصال.
-
المرتجعات
-
منفذ يمكن استخدامه للتواصل مع نصوص المحتوى البرمجية التي يتم تشغيلها في علامة التبويب المحدّدة. يتم تنشيط حدث
runtime.Portللمنفذ إذا تم إغلاق علامة التبويب أو لم تكن متوفّرة.
المعلمات
-
createProperties
عنصر
-
نشطة
boolean اختياري
تحديد ما إذا كان يجب أن تصبح علامة التبويب هي علامة التبويب النشطة في النافذة لا يؤثّر في ما إذا كانت النافذة مركّزة (راجِع
windows.update). القيمة التلقائية هيtrue. -
الفهرس
number اختياري
الموضع الذي يجب أن تحتله علامة التبويب في النافذة يتم حصر القيمة المقدَّمة بين صفر وعدد علامات التبويب في النافذة.
-
openerTabId
number اختياري
تمثّل هذه السمة رقم تعريف علامة التبويب التي فتحت علامة التبويب الحالية. في حال تحديدها، يجب أن تكون علامة التبويب التي فتحت النافذة في النافذة نفسها التي تم إنشاء علامة التبويب الجديدة فيها.
-
تم تثبيته
boolean اختياري
تُستخدَم لتحديد ما إذا كان يجب تثبيت علامة التبويب. القيمة التلقائية هي
false -
تم الاختيار
boolean اختياري
تمّت إزالة هذا العموديُرجى استخدام نشط.
تحديد ما إذا كان يجب أن تصبح علامة التبويب هي علامة التبويب المحدّدة في النافذة القيمة التلقائية هي
true -
url
سلسلة اختيارية
تمثّل هذه السمة عنوان URL الذي سيتم الانتقال إلى علامة التبويب من خلاله في البداية. يجب أن تتضمّن عناوين URL المؤهَّلة بالكامل مخططًا (أي 'http://www.google.com' وليس 'www.google.com'). تكون عناوين URL النسبية مرتبطة بالصفحة الحالية داخل الإضافة. يتم ضبط هذه الخاصية تلقائيًا على صفحة "علامة تبويب جديدة".
-
windowId
number اختياري
النافذة التي سيتم إنشاء علامة التبويب الجديدة فيها القيمة التلقائية هي النافذة الحالية.
-
المرتجعات
-
Promise<Tab>
الإصدار 88 من Chrome والإصدارات الأحدث
detectLanguage()
chrome.tabs.detectLanguage(
tabId?: number,
): Promise<string>
تتعرّف هذه السمة على اللغة الأساسية للمحتوى في علامة تبويب.
المعلمات
-
tabId
number اختياري
يتم ضبطها تلقائيًا على علامة التبويب النشطة في النافذة الحالية.
المرتجعات
-
Promise<string>
الإصدار 88 من Chrome والإصدارات الأحدث
discard()
chrome.tabs.discard(
tabId?: number,
): Promise<Tab | undefined>
تتجاهل علامة تبويب من الذاكرة. ستظل علامات التبويب التي تم تجاهلها مرئية على شريط علامات التبويب وتتم إعادة تحميلها عند تنشيطها.
المعلمات
-
tabId
number اختياري
رقم تعريف علامة التبويب المطلوب تجاهلها في حال تحديدها، يتم تجاهل علامة التبويب ما لم تكن نشطة أو تم تجاهلها من قبل. في حال عدم تحديد أي علامة، يتجاهل المتصفّح علامة التبويب الأقل أهمية. قد يتعذّر ذلك في حال عدم توفّر أي علامات تبويب يمكن تجاهلها.
المرتجعات
-
Promise<Tab | undefined>
الإصدار 88 من Chrome والإصدارات الأحدثيتم حلّها بعد اكتمال العملية.
المعلمات
-
tabId
الرقم
رقم تعريف علامة التبويب المطلوب تكرارها
المرتجعات
-
Promise<Tab | undefined>
الإصدار 88 من Chrome والإصدارات الأحدث
get()
chrome.tabs.get(
tabId: number,
): Promise<Tab>
تعرض هذه الطريقة تفاصيل حول علامة التبويب المحدّدة.
المعلمات
-
tabId
الرقم
المرتجعات
-
Promise<Tab>
الإصدار 88 من Chrome والإصدارات الأحدث
getCurrent()
chrome.tabs.getCurrent(): Promise<Tab | undefined>
تعرض علامة التبويب التي يتم إجراء طلب البرنامج النصي هذا منها. تعرض القيمة undefined إذا تم استدعاؤها من سياق غير علامة تبويب (على سبيل المثال، صفحة في الخلفية أو عرض منبثق).
المرتجعات
-
Promise<Tab | undefined>
الإصدار 88 من Chrome والإصدارات الأحدث
getZoom()
chrome.tabs.getZoom(
tabId?: number,
): Promise<number>
تعرض هذه الطريقة عامل التكبير الحالي لعلامة تبويب محدّدة.
المعلمات
-
tabId
number اختياري
رقم تعريف علامة التبويب التي سيتم الحصول على عامل التكبير/التصغير الحالي منها، ويتم ضبطه تلقائيًا على علامة التبويب النشطة في النافذة الحالية.
المرتجعات
-
Promise<number>
الإصدار 88 من Chrome والإصدارات الأحدثيتم حلّ المشكلة باستخدام عامل التكبير/التصغير الحالي لعلامة التبويب بعد استرجاعه.
getZoomSettings()
chrome.tabs.getZoomSettings(
tabId?: number,
): Promise<ZoomSettings>
تعرض هذه الطريقة إعدادات التكبير الحالية لعلامة تبويب محدّدة.
المعلمات
-
tabId
number اختياري
رقم تعريف علامة التبويب التي سيتم الحصول على إعدادات التكبير/التصغير الحالية منها. القيمة التلقائية هي علامة التبويب النشطة في النافذة الحالية.
المرتجعات
-
Promise<ZoomSettings>
الإصدار 88 من Chrome والإصدارات الأحدثيتم حلّ المشكلة باستخدام إعدادات التكبير/التصغير الحالية لعلامة التبويب.
goBack()
chrome.tabs.goBack(
tabId?: number,
): Promise<void>
الرجوع إلى الصفحة السابقة، إذا كانت متاحة
المعلمات
-
tabId
number اختياري
معرّف علامة التبويب التي سيتم الانتقال إلى الخلف فيها، ويتم ضبطه تلقائيًا على علامة التبويب المحدّدة في النافذة الحالية.
المرتجعات
-
Promise<void>
الإصدار 88 من Chrome والإصدارات الأحدث
goForward()
chrome.tabs.goForward(
tabId?: number,
): Promise<void>
الانتقال إلى الصفحة التالية، إذا كانت متاحة
المعلمات
-
tabId
number اختياري
معرّف علامة التبويب التي سيتم الانتقال إليها للأمام، والقيمة التلقائية هي علامة التبويب المحدّدة في النافذة الحالية
المرتجعات
-
Promise<void>
الإصدار 88 من Chrome والإصدارات الأحدث
group()
chrome.tabs.group(
options: object,
): Promise<number>
تضيف هذه السياسة علامة تبويب واحدة أو أكثر إلى مجموعة محدّدة، أو إذا لم يتم تحديد أي مجموعة، تضيف علامات التبويب المحدّدة إلى مجموعة تم إنشاؤها حديثًا.
المعلمات
-
الخيارات
عنصر
-
createProperties
كائن اختياري
إعدادات إنشاء مجموعة لا يمكن استخدامها إذا تم تحديد groupId من قبل.
-
windowId
number اختياري
نافذة المجموعة الجديدة يتم ضبطها تلقائيًا على النافذة الحالية.
-
-
groupId
number اختياري
رقم تعريف المجموعة التي ستتم إضافة علامات التبويب إليها. في حال عدم تحديدها، سيتم إنشاء مجموعة جديدة.
-
tabIds
number | [number, ...number[]]
رقم تعريف علامة التبويب أو قائمة أرقام تعريف علامات التبويب المطلوب إضافتها إلى المجموعة المحدّدة
-
المرتجعات
-
Promise<number>
highlight()
chrome.tabs.highlight(
highlightInfo: object,
): Promise<windows.Window>
يُبرز علامات التبويب المحدّدة ويركّز على أول علامة تبويب في المجموعة. لن يظهر أي تأثير إذا كانت علامة التبويب المحدّدة نشطة حاليًا.
المعلمات
-
highlightInfo
عنصر
-
علامات التبويب
number | number[]
فهرس علامة تبويب واحد أو أكثر لتسليط الضوء عليه
-
windowId
number اختياري
النافذة التي تحتوي على علامات التبويب
-
المرتجعات
-
Promise<windows.Window>
الإصدار 88 من Chrome والإصدارات الأحدث
move()
chrome.tabs.move(
tabIds: number | number[],
moveProperties: object,
): Promise<Tab | Tab[]>
ينقل علامة تبويب واحدة أو أكثر إلى موضع جديد داخل النافذة أو إلى نافذة جديدة. يُرجى العِلم أنّه لا يمكن نقل علامات التبويب إلا إلى النوافذ العادية (window.type === "normal") ومنها.
المعلمات
-
tabIds
number | number[]
رقم تعريف علامة التبويب أو قائمة أرقام تعريف علامات التبويب المطلوب نقلها
-
moveProperties
عنصر
-
الفهرس
الرقم
الموضع الذي سيتم نقل النافذة إليه استخدِم
-1لوضع علامة التبويب في نهاية النافذة. -
windowId
number اختياري
يتم ضبط هذه السمة تلقائيًا على النافذة التي توجد فيها علامة التبويب حاليًا.
-
query()
chrome.tabs.query(
queryInfo: object,
): Promise<Tab[]>
تعرض هذه الطريقة جميع علامات التبويب التي تتضمّن الخصائص المحدّدة، أو جميع علامات التبويب إذا لم يتم تحديد أي خصائص.
المعلمات
-
queryInfo
عنصر
-
نشطة
boolean اختياري
ما إذا كانت علامات التبويب نشطة في نوافذها
-
تطبيق audible
boolean اختياري
Chrome 45 والإصدارات الأحدثتحديد ما إذا كانت علامات التبويب مسموعة.
-
autoDiscardable
boolean اختياري
الإصدار 54 من Chrome أو إصدار أحدثتحديد ما إذا كان بإمكان المتصفّح تجاهل علامات التبويب تلقائيًا عندما تكون الموارد منخفضة
-
currentWindow
boolean اختياري
تحدّد هذه السمة ما إذا كانت علامات التبويب في النافذة الحالية.
-
تم التجاهل
boolean اختياري
الإصدار 54 من Chrome أو إصدار أحدثتحديد ما إذا كان سيتم تجاهل علامات التبويب علامة التبويب التي تم تجاهلها هي علامة تبويب تم إلغاء تحميل محتواها من الذاكرة، ولكنها لا تزال مرئية في شريط علامات التبويب. ويتم إعادة تحميل محتواه في المرة التالية التي يتم فيها تفعيله.
-
لا يستجيب
boolean اختياري
الإصدار 132 من Chrome والإصدارات الأحدثتُستخدَم لتحديد ما إذا كانت علامات التبويب مجمَّدة أم لا. لا يمكن لعلامة التبويب المجمّدة تنفيذ المهام، بما في ذلك معالِجات الأحداث أو المؤقتات. تكون مرئية في شريط علامات التبويب ويتم تحميل محتواها في الذاكرة. ويتم إلغاء تجميده عند التفعيل.
-
groupId
number اختياري
الإصدار 88 من Chrome والإصدارات الأحدثرقم تعريف المجموعة التي تتضمّن علامات التبويب، أو
tabGroups.TAB_GROUP_ID_NONEلعلامات التبويب غير المُجمَّعة -
بارزة
boolean اختياري
تحديد ما إذا كان سيتم تمييز علامات التبويب.
-
الفهرس
number اختياري
موضع علامات التبويب داخل النوافذ
-
lastFocusedWindow
boolean اختياري
ما إذا كانت علامات التبويب في النافذة التي تم التركيز عليها آخر مرة
-
تم كتم الصوت
boolean اختياري
Chrome 45 والإصدارات الأحدثتُستخدَم لتحديد ما إذا كان صوت علامات التبويب مكتومًا.
-
تم تثبيته
boolean اختياري
تحديد ما إذا كانت علامات التبويب مثبّتة
-
splitViewId
number اختياري
Chrome 140 أو إصدار أحدثمعرّف "تقسيم العرض" الذي توجد فيه علامات التبويب، أو
tabs.SPLIT_VIEW_ID_NONEلعلامات التبويب التي لا تظهر في وضع "تقسيم العرض" -
status
TabStatus اختياري
حالة تحميل علامة التبويب
-
title
سلسلة اختيارية
مطابقة عناوين الصفحات مع نمط يتم تجاهل هذه السمة إذا لم يكن لدى الإضافة إذن
"tabs"أو أذونات المضيف للصفحة. -
url
string | string[] اختياري
مطابقة علامات التبويب مع أنماط عناوين URL واحدة أو أكثر لا تتم مطابقة معرّفات الأجزاء. يتم تجاهل هذه السمة إذا لم يكن لدى الإضافة إذن
"tabs"أو أذونات المضيف للصفحة. -
windowId
number اختياري
رقم تعريف النافذة الرئيسية أو
windows.WINDOW_ID_CURRENTللنافذة الحالية -
windowType
WindowType اختيارية
تمثّل هذه السمة نوع النافذة التي تظهر فيها علامات التبويب.
-
المرتجعات
-
Promise<Tab[]>
الإصدار 88 من Chrome والإصدارات الأحدث
reload()
chrome.tabs.reload(
tabId?: number,
reloadProperties?: object,
): Promise<void>
أعِد تحميل علامة تبويب.
المعلمات
-
tabId
number اختياري
معرّف علامة التبويب المطلوب إعادة تحميلها، ويتم ضبطه تلقائيًا على علامة التبويب المحدّدة في النافذة الحالية.
-
reloadProperties
كائن اختياري
-
bypassCache
boolean اختياري
تُستخدَم لتحديد ما إذا كان سيتم تجاوز التخزين المؤقت المحلي. القيمة التلقائية هي
false.
-
المرتجعات
-
Promise<void>
الإصدار 88 من Chrome والإصدارات الأحدث
remove()
chrome.tabs.remove(
tabIds: number | number[],
): Promise<void>
يغلق علامة تبويب واحدة أو أكثر.
المعلمات
-
tabIds
number | number[]
تمثّل هذه السمة رقم تعريف علامة التبويب أو قائمة أرقام تعريف علامات التبويب المطلوب إغلاقها.
المرتجعات
-
Promise<void>
الإصدار 88 من Chrome والإصدارات الأحدث
sendMessage()
chrome.tabs.sendMessage(
tabId: number,
message: any,
options?: object,
): Promise<any>
ترسل هذه الطريقة رسالة واحدة إلى نصوص البرامج في علامة التبويب المحدّدة. يتم تشغيل الحدث runtime.onMessage في كل نص برمجي للمحتوى يتم تشغيله في علامة التبويب المحدّدة للإضافة الحالية.
المعلمات
-
tabId
الرقم
-
رسالة
أي واحد
الرسالة المطلوب إرسالها يجب أن تكون هذه الرسالة عنصرًا قابلاً للتحويل إلى JSON.
-
الخيارات
كائن اختياري
المرتجعات
-
Promise<any>
الإصدار 99 من Chrome والإصدارات الأحدثوعد يتم تنفيذه مع الردّ من النص البرمجي للمحتوى إذا حدث خطأ أثناء الاتصال بعلامة التبويب المحدّدة، سيتم رفض الوعد.
setZoom()
chrome.tabs.setZoom(
tabId?: number,
zoomFactor: number,
): Promise<void>
تكبير علامة تبويب محدّدة
المعلمات
-
tabId
number اختياري
رقم تعريف علامة التبويب المطلوب تكبيرها، ويتم ضبطه تلقائيًا على علامة التبويب النشطة في النافذة الحالية.
-
zoomFactor
الرقم
عامل التكبير أو التصغير الجديد. تؤدي القيمة
0إلى ضبط علامة التبويب على عامل التكبير/التصغير التلقائي الحالي. تشير القيم الأكبر من0إلى عامل تكبير/تصغير للعلامة (قد يكون غير تلقائي).
المرتجعات
-
Promise<void>
الإصدار 88 من Chrome والإصدارات الأحدثيتم حلّ المشكلة بعد تغيير عامل التكبير/التصغير.
setZoomSettings()
chrome.tabs.setZoomSettings(
tabId?: number,
zoomSettings: ZoomSettings,
): Promise<void>
تضبط هذه السمة إعدادات التكبير/التصغير لعلامة تبويب محدّدة، وتحدّد كيفية التعامل مع تغييرات التكبير/التصغير. تتم إعادة ضبط هذه الإعدادات على الإعدادات التلقائية عند الانتقال إلى علامة التبويب.
المعلمات
-
tabId
number اختياري
معرّف علامة التبويب التي سيتم تغيير إعدادات التكبير/التصغير لها، ويتم ضبطها تلقائيًا على علامة التبويب النشطة في النافذة الحالية.
-
zoomSettings
تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير ونطاقها.
المرتجعات
-
Promise<void>
الإصدار 88 من Chrome والإصدارات الأحدثيتم حلّ المشكلة بعد تغيير إعدادات التكبير.
ungroup()
chrome.tabs.ungroup(
tabIds: number | [number, ...number[]],
): Promise<void>
تزيل هذه الطريقة علامة تبويب واحدة أو أكثر من مجموعاتها. إذا أصبحت أي مجموعات فارغة، سيتم حذفها.
المعلمات
-
tabIds
number | [number, ...number[]]
معرّف علامة التبويب أو قائمة بمعرّفات علامات التبويب المطلوب إزالتها من مجموعاتها.
المرتجعات
-
Promise<void>
update()
chrome.tabs.update(
tabId?: number,
updateProperties: object,
): Promise<Tab | undefined>
تعدّل هذه الطريقة خصائص علامة تبويب. لا يتم تعديل الخصائص غير المحدّدة في updateProperties.
المعلمات
-
tabId
number اختياري
يتم ضبطه تلقائيًا على علامة التبويب المحدّدة في النافذة الحالية.
-
updateProperties
عنصر
-
نشطة
boolean اختياري
تحديد ما إذا كان يجب أن تكون علامة التبويب نشطة. لا يؤثّر هذا الخيار في ما إذا كانت النافذة مركّزة (راجِع
windows.update). -
autoDiscardable
boolean اختياري
الإصدار 54 من Chrome أو إصدار أحدثتحدّد هذه السمة ما إذا كان المتصفّح سيتجاهل علامة التبويب تلقائيًا عندما تكون الموارد منخفضة.
-
بارزة
boolean اختياري
تضيف علامة التبويب أو تزيلها من الجزء المحدّد حاليًا.
-
تم كتم الصوت
boolean اختياري
Chrome 45 والإصدارات الأحدثتحدّد هذه السمة ما إذا كان يجب كتم صوت علامة التبويب.
-
openerTabId
number اختياري
تمثّل هذه السمة رقم تعريف علامة التبويب التي فتحت علامة التبويب الحالية. في حال تحديدها، يجب أن تكون علامة التبويب التي فتحت هذه العلامة في النافذة نفسها.
-
تم تثبيته
boolean اختياري
تُستخدَم لتحديد ما إذا كان يجب تثبيت علامة التبويب.
-
تم الاختيار
boolean اختياري
تمّت إزالة هذا العموديُرجى استخدام النص المميّز.
تحديد ما إذا كان يجب اختيار علامة التبويب
-
url
سلسلة اختيارية
عنوان URL للانتقال إلى علامة التبويب لا تتوافق عناوين URL الخاصة بـ JavaScript، لذا استخدِم
scripting.executeScriptبدلاً منها.
-
المرتجعات
-
Promise<Tab | undefined>
الإصدار 88 من Chrome والإصدارات الأحدث
الفعاليات
onActivated
chrome.tabs.onActivated.addListener(
callback: function,
)
يتم تشغيل هذا الحدث عند تغيير علامة التبويب النشطة في نافذة. يُرجى العِلم أنّه قد لا يتم ضبط عنوان URL للعلامة في وقت تشغيل هذا الحدث، ولكن يمكنك الاستماع إلى أحداث onUpdated لتلقّي إشعار عند ضبط عنوان URL.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(activeInfo: object) => void
-
activeInfo
عنصر
-
tabId
الرقم
رقم تعريف علامة التبويب التي أصبحت نشطة.
-
windowId
الرقم
معرّف النافذة التي تم تغيير علامة التبويب النشطة بداخلها
-
-
onAttached
chrome.tabs.onAttached.addListener(
callback: function,
)
يتم تنشيط هذا الحدث عند ربط علامة تبويب بنافذة، مثلاً، لأنّه تم نقلها بين النوافذ.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(tabId: number, attachInfo: object) => void
-
tabId
الرقم
-
attachInfo
عنصر
-
newPosition
الرقم
-
newWindowId
الرقم
-
-
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
الرقم
-
detachInfo
عنصر
-
oldPosition
الرقم
-
oldWindowId
الرقم
-
-
onHighlighted
chrome.tabs.onHighlighted.addListener(
callback: function,
)
يتم تنشيط هذا الحدث عند تغيير علامات التبويب المميّزة أو المحدّدة في نافذة.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(highlightInfo: object) => void
-
highlightInfo
عنصر
-
tabIds
number[]
جميع علامات التبويب المميّزة في النافذة
-
windowId
الرقم
النافذة التي تم تغيير علامات التبويب فيها
-
-
onMoved
chrome.tabs.onMoved.addListener(
callback: function,
)
يتم تنشيط هذا الحدث عند نقل علامة تبويب داخل نافذة. يتم تنشيط حدث نقل واحد فقط، وهو يمثّل علامة التبويب التي نقلها المستخدم مباشرةً. لا يتم تنشيط أحداث النقل لعلامات التبويب الأخرى التي يجب نقلها استجابةً لعلامة التبويب التي تم نقلها يدويًا. لا يتم تنشيط هذا الحدث عند نقل علامة تبويب بين النوافذ. لمزيد من التفاصيل، يُرجى الاطّلاع على tabs.onDetached.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(tabId: number, moveInfo: object) => void
-
tabId
الرقم
-
moveInfo
عنصر
-
fromIndex
الرقم
-
toIndex
الرقم
-
windowId
الرقم
-
-
onRemoved
chrome.tabs.onRemoved.addListener(
callback: function,
)
يتم إطلاقه عند إغلاق علامة تبويب.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(tabId: number, removeInfo: object) => void
-
tabId
الرقم
-
removeInfo
عنصر
-
isWindowClosing
قيمة منطقية
تكون القيمة "صحيح" عندما يتم إغلاق علامة التبويب لأنّه تم إغلاق النافذة الرئيسية.
-
windowId
الرقم
النافذة التي تم إغلاق علامة التبويب فيها
-
-
onReplaced
chrome.tabs.onReplaced.addListener(
callback: function,
)
يتم تنشيط هذا الحدث عندما يتم استبدال علامة تبويب بأخرى بسبب العرض المسبق أو العرض الفوري.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(addedTabId: number, removedTabId: number) => void
-
addedTabId
الرقم
-
removedTabId
الرقم
-
onUpdated
chrome.tabs.onUpdated.addListener(
callback: function,
)
يتم إطلاقه عند تعديل علامة تبويب.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(tabId: number, changeInfo: object, tab: Tab) => void
-
tabId
الرقم
-
changeInfo
عنصر
-
تطبيق audible
boolean اختياري
Chrome 45 والإصدارات الأحدثتمثّل هذه السمة حالة الصوت الجديدة لعلامة التبويب.
-
autoDiscardable
boolean اختياري
الإصدار 54 من Chrome أو إصدار أحدثالحالة الجديدة التي يمكن تجاهلها تلقائيًا لعلامة التبويب.
-
تم التجاهل
boolean اختياري
الإصدار 54 من Chrome أو إصدار أحدثحالة علامة التبويب الجديدة التي تم تجاهلها.
-
favIconUrl
سلسلة اختيارية
تمثّل هذه السمة عنوان URL الجديد للرمز المفضّل لعلامة التبويب.
-
لا يستجيب
boolean اختياري
الإصدار 132 من Chrome والإصدارات الأحدثحالة التجميد الجديدة لعلامة التبويب
-
groupId
number اختياري
الإصدار 88 من Chrome والإصدارات الأحدثمجموعة علامات التبويب الجديدة
-
mutedInfo
MutedInfo اختيارية
Chrome 46 والإصدارات الأحدثحالة كتم الصوت الجديدة لعلامة التبويب وسبب التغيير
-
تم تثبيته
boolean اختياري
حالة التثبيت الجديدة لعلامة التبويب.
-
splitViewId
number اختياري
Chrome 140 أو إصدار أحدثعلامة التبويب الجديدة في وضع "تقسيم العرض"
-
status
TabStatus اختياري
حالة تحميل علامة التبويب
-
title
سلسلة اختيارية
الإصدار 48 من Chrome والإصدارات الأحدثتمثّل هذه السمة عنوان علامة التبويب الجديد.
-
url
سلسلة اختيارية
عنوان URL للعلامة إذا تم تغييره
-
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
يتم إطلاقه عند تكبير علامة تبويب.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(ZoomChangeInfo: object) => void
-
ZoomChangeInfo
عنصر
-
newZoomFactor
الرقم
-
oldZoomFactor
الرقم
-
tabId
الرقم
-
zoomSettings
-
-