الوصف
استخدِم واجهة برمجة التطبيقات chrome.tabs
للتفاعل مع نظام علامات التبويب في المتصفّح. يمكنك استخدام واجهة برمجة التطبيقات هذه لإنشاء علامات تبويب وتعديلها وإعادة ترتيبها في المتصفّح.
لا توفّر واجهة Tabs API ميزات لمعالجة علامات التبويب وإدارتها فحسب، بل يمكنها أيضًا رصد لغة علامة التبويب، وأخذ لقطة شاشة، والتواصل مع نصوص البرامج في علامة التبويب.
الأذونات
لا تتطلّب معظم الميزات أي أذونات لاستخدامها. على سبيل المثال: إنشاء علامة تبويب جديدة أو إعادة تحميل علامة تبويب أو الانتقال إلى عنوان URL آخر وما إلى ذلك
هناك ثلاثة أذونات يجب أن يكون المطوّرون على دراية بها عند استخدام Tabs API.
- إذن "علامات التبويب"
لا يمنح هذا الإذن إمكانية الوصول إلى مساحة الاسم
chrome.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:
chrome.runtime.onInstalled.addListener(({reason}) => { if (reason === 'install') { chrome.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 chrome.tabs.query(queryOptions); return tab; }
function getCurrentTab(callback) { let queryOptions = { active: true, lastFocusedWindow: true }; chrome.tabs.query(queryOptions, ([tab]) => { if (chrome.runtime.lastError) console.error(chrome.runtime.lastError); // `tab` will either be a `tabs.Tab` instance or `undefined`. callback(tab); }); }
كتم صوت علامة التبويب المحدّدة
يوضّح هذا المثال كيف يمكن لإحدى الإضافات تبديل حالة كتم الصوت لعلامة تبويب معيّنة.
async function toggleMuteState(tabId) { const tab = await chrome.tabs.get(tabId); const muted = !tab.mutedInfo.muted; await chrome.tabs.update(tabId, {muted}); console.log(`Tab ${tab.id} is ${muted ? "muted" : "unmuted"}`); }
function toggleMuteState(tabId) { chrome.tabs.get(tabId, async (tab) => { let muted = !tab.mutedInfo.muted; await chrome.tabs.update(tabId, { muted }); console.log(`Tab ${tab.id} is ${ muted ? "muted" : "unmuted" }`); }); }
نقل علامة التبويب الحالية إلى الموضع الأول عند النقر عليها
يوضّح هذا المثال كيفية نقل علامة تبويب أثناء تقدُّم عملية السحب أو عدم تقدُّمها. على الرغم من أنّ هذا المثال يستخدم chrome.tabs.move
، يمكنك استخدام نمط الانتظار نفسه للمكالمات الأخرى التي تعدّل علامات التبويب أثناء عملية السحب.
chrome.tabs.onActivated.addListener(moveToFirstPosition); async function moveToFirstPosition(activeInfo) { try { await chrome.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); } } }
chrome.tabs.onActivated.addListener(moveToFirstPositionMV2); function moveToFirstPositionMV2(activeInfo) { chrome.tabs.move(activeInfo.tabId, { index: 0 }, () => { if (chrome.runtime.lastError) { const error = chrome.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 chrome.tabs.query({ active: true, lastFocusedWindow: true }); const response = await chrome.tabs.sendMessage(tab.id, message); // TODO: Do something with the response. }
أمثلة على الإضافات
للاطّلاع على المزيد من العروض التوضيحية لإضافات Tabs API، يمكنك استكشاف أيّ مما يلي:
- الإصدار 2 من Manifest - إضافات واجهة برمجة التطبيقات Tabs API
- الإصدار 3 من Manifest - "إدارة علامات التبويب"
الأنواع
MutedInfo
حالة كتم صوت علامة التبويب وسبب آخر تغيير في الحالة
الخصائص
- extensionId
سلسلة اختيارية
رقم تعريف الإضافة التي غيّرت حالة كتم الصوت. لا يتم ضبط هذه السمة إذا لم تكن الإضافة هي السبب في آخر تغيير لحالة كتم الصوت.
- تم كتم الصوت
قيمة منطقية
تُستخدَم لتحديد ما إذا كان قد تم كتم صوت علامة التبويب (منعها من تشغيل الصوت). قد يتم كتم صوت علامة التبويب حتى إذا لم يتم تشغيل الصوت أو إذا لم يكن قيد التشغيل حاليًا. تكون هذه السمة مكافئة لما إذا كان مؤشر الصوت "تم كتم الصوت" معروضًا.
- السبب
MutedInfoReason اختيارية
سبب كتم صوت علامة التبويب أو إلغاء كتمه لا يتم ضبط هذه السمة إذا لم يتم تغيير حالة تجاهل علامة التبويب أبدًا.
MutedInfoReason
حدث تسبّب في تغيير حالة كتم الصوت
Enum
"المستخدم"
تم ضبط حالة كتم الصوت من خلال مجموعة إجراءات إدخال من المستخدم.
"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
بشكل فريد. - status
TabStatus اختياري
تعرض هذه السمة حالة تحميل علامة التبويب.
- title
سلسلة اختيارية
تمثّل هذه السمة عنوان علامة التبويب. لا تظهر هذه السمة إلا إذا كانت الإضافة تتضمّن إذن
"tabs"
أو أذونات مضيف للصفحة. - url
سلسلة اختيارية
آخر عنوان URL تمّ إرساله للإطار الرئيسي لعلامة التبويب. لا تظهر هذه السمة إلا إذا كانت الإضافة تتضمّن إذن
"tabs"
أو أذونات مضيف للصفحة. قد تكون سلسلة فارغة إذا لم يتم تثبيت علامة التبويب بعد. يمكنك الاطّلاع أيضًا علىTab.pendingUrl
. - العرض
number اختياري
تمثّل هذه السمة عرض علامة التبويب بالبكسل.
- windowId
الرقم
رقم تعريف النافذة التي تحتوي على علامة التبويب
TabStatus
تعرض هذه السمة حالة تحميل علامة التبويب.
Enum
"unloaded"
"loading"
"complete"
WindowType
نوع النافذة.
Enum
"normal"
"popup"
"panel"
"app"
"devtools"
ZoomSettings
تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير في علامة تبويب ونطاقها.
الخصائص
- defaultZoomFactor
number اختياري
Chrome 43 والإصدارات الأحدثيُستخدَم لعرض مستوى التكبير أو التصغير التلقائي لعلامة التبويب الحالية في طلبات tabs.getZoomSettings.
- الوضع
ZoomSettingsMode اختياري
تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير، أي الجهة المسؤولة عن تغيير حجم الصفحة الفعلي، والقيمة التلقائية هي
automatic
. - نطاق
ZoomSettingsScope اختياري
تحدّد هذه السياسة ما إذا كانت تغييرات التكبير/التصغير تظل سارية على مصدر الصفحة، أو ما إذا كانت تسري فقط في علامة التبويب هذه. القيمة التلقائية هي
per-origin
في وضعautomatic
، وper-tab
في الحالات الأخرى.
ZoomSettingsMode
تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير، أي الجهة المسؤولة عن تغيير حجم الصفحة الفعلي، والقيمة التلقائية هي automatic
.
Enum
"تلقائي"
يتعامل المتصفّح تلقائيًا مع تغييرات التكبير.
"يدوي"
تتجاوز هذه القيمة المعالجة التلقائية لتغييرات التكبير/التصغير. سيظلّ الحدث onZoomChange
يتم إرساله، ويكون من مسؤولية الإضافة الاستماع إلى هذا الحدث وتغيير حجم الصفحة يدويًا. لا يتيح هذا الوضع تكبير per-origin
، وبالتالي يتجاهل إعداد التكبير scope
ويفترض per-tab
.
"disabled"
يؤدي إلى إيقاف جميع عمليات التكبير في علامة التبويب. تعود علامة التبويب إلى مستوى التكبير أو التصغير التلقائي، ويتم تجاهل جميع محاولات تغيير مستوى التكبير أو التصغير.
ZoomSettingsScope
تحدّد هذه السياسة ما إذا كانت تغييرات التكبير/التصغير تظل سارية على مصدر الصفحة، أو ما إذا كانت تسري فقط في علامة التبويب هذه. القيمة التلقائية هي per-origin
في وضع automatic
، وper-tab
في الحالات الأخرى.
Enum
"على مستوى المصدر"
تظل تغييرات التكبير/التصغير محفوظة في مصدر الصفحة المكبّرة، أي أنّه يتم أيضًا تكبير/تصغير جميع علامات التبويب الأخرى التي تم الانتقال إليها من المصدر نفسه. بالإضافة إلى ذلك، يتم حفظ تغييرات التكبير/التصغير per-origin
مع المصدر، ما يعني أنّه عند الانتقال إلى صفحات أخرى في المصدر نفسه، يتم تكبير/تصغير كل الصفحات بمقدار التكبير/التصغير نفسه. لا يتوفّر نطاق per-origin
إلا في وضع automatic
.
"لكل علامة تبويب"
لا تسري تغييرات التكبير أو التصغير إلا في علامة التبويب هذه، ولا تؤثّر تغييرات التكبير أو التصغير في علامات التبويب الأخرى في تكبير أو تصغير علامة التبويب هذه. بالإضافة إلى ذلك، تتم إعادة ضبط تغييرات التكبير/التصغير per-tab
عند التنقّل، إذ يؤدي التنقّل في علامة تبويب إلى تحميل الصفحات دائمًا بعوامل التكبير/التصغير per-origin
.
الخصائص
MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND
الحدّ الأقصى لعدد المرات التي يمكن فيها استدعاء captureVisibleTab
في الثانية captureVisibleTab
مكلفة ويجب عدم استدعاؤها بشكل متكرّر.
القيمة
2
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 اختياري
في انتظار المراجعةمعرّف "تقسيم العرض" الذي تتضمّنه علامات التبويب، أو
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 اختياري
في انتظار المراجعةعلامة التبويب الجديدة في وضع "تقسيم العرض"
- status
TabStatus اختياري
تعرض هذه السمة حالة تحميل علامة التبويب.
- title
سلسلة اختيارية
الإصدار 48 من Chrome أو إصدار أحدثتمثّل هذه السمة العنوان الجديد لعلامة التبويب.
- url
سلسلة اختيارية
عنوان URL للعلامة إذا تم تغييره
-
-
onZoomChange
chrome.tabs.onZoomChange.addListener(
callback: function,
)
يتم إطلاقه عند تكبير علامة تبويب.
المعلمات
- callback
دالة
تظهر المَعلمة
callback
على النحو التالي:(ZoomChangeInfo: object) => void
- ZoomChangeInfo
عنصر
- newZoomFactor
الرقم
- oldZoomFactor
الرقم
- tabId
الرقم
- zoomSettings
-
-