chrome.tabs

الوصف

استخدِم واجهة برمجة التطبيقات 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، يمكنك استكشاف أيّ مما يلي:

الأنواع

MutedInfo

Chrome 46 والإصدارات الأحدث

حالة كتم صوت علامة التبويب وسبب آخر تغيير في الحالة

الخصائص

  • extensionId

    سلسلة اختيارية

    رقم تعريف الإضافة التي غيّرت حالة كتم الصوت. لا يتم ضبط هذه السمة إذا لم تكن الإضافة هي السبب في آخر تغيير لحالة كتم الصوت.

  • تم كتم الصوت

    قيمة منطقية

    تُستخدَم لتحديد ما إذا كان قد تم كتم صوت علامة التبويب (منعها من تشغيل الصوت). قد يتم كتم صوت علامة التبويب حتى إذا لم يتم تشغيل الصوت أو إذا لم يكن قيد التشغيل حاليًا. تكون هذه السمة مكافئة لما إذا كان مؤشر الصوت "تم كتم الصوت" معروضًا.

  • السبب

    MutedInfoReason اختيارية

    سبب كتم صوت علامة التبويب أو إلغاء كتمه لا يتم ضبط هذه السمة إذا لم يتم تغيير حالة تجاهل علامة التبويب أبدًا.

MutedInfoReason

Chrome 46 والإصدارات الأحدث

حدث تسبّب في تغيير حالة كتم الصوت

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

Chrome 44 والإصدارات الأحدث

تعرض هذه السمة حالة تحميل علامة التبويب.

Enum

"unloaded"

"loading"

"complete"

WindowType

Chrome 44 والإصدارات الأحدث

نوع النافذة.

Enum

"normal"

"popup"

"panel"

"app"

"devtools"

ZoomSettings

تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير في علامة تبويب ونطاقها.

الخصائص

  • defaultZoomFactor

    number اختياري

    Chrome 43 والإصدارات الأحدث

    يُستخدَم لعرض مستوى التكبير أو التصغير التلقائي لعلامة التبويب الحالية في طلبات tabs.getZoomSettings.

  • الوضع

    ZoomSettingsMode اختياري

    تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير، أي الجهة المسؤولة عن تغيير حجم الصفحة الفعلي، والقيمة التلقائية هي automatic.

  • نطاق

    ZoomSettingsScope اختياري

    تحدّد هذه السياسة ما إذا كانت تغييرات التكبير/التصغير تظل سارية على مصدر الصفحة، أو ما إذا كانت تسري فقط في علامة التبويب هذه. القيمة التلقائية هي per-origin في وضع automatic، وper-tab في الحالات الأخرى.

ZoomSettingsMode

Chrome 44 والإصدارات الأحدث

تحدّد هذه السمة كيفية التعامل مع تغييرات التكبير/التصغير، أي الجهة المسؤولة عن تغيير حجم الصفحة الفعلي، والقيمة التلقائية هي automatic.

Enum

"تلقائي"
يتعامل المتصفّح تلقائيًا مع تغييرات التكبير.

"يدوي"
تتجاوز هذه القيمة المعالجة التلقائية لتغييرات التكبير/التصغير. سيظلّ الحدث onZoomChange يتم إرساله، ويكون من مسؤولية الإضافة الاستماع إلى هذا الحدث وتغيير حجم الصفحة يدويًا. لا يتيح هذا الوضع تكبير per-origin، وبالتالي يتجاهل إعداد التكبير scope ويفترض per-tab.

"disabled"
يؤدي إلى إيقاف جميع عمليات التكبير في علامة التبويب. تعود علامة التبويب إلى مستوى التكبير أو التصغير التلقائي، ويتم تجاهل جميع محاولات تغيير مستوى التكبير أو التصغير.

ZoomSettingsScope

Chrome 44 والإصدارات الأحدث

تحدّد هذه السياسة ما إذا كانت تغييرات التكبير/التصغير تظل سارية على مصدر الصفحة، أو ما إذا كانت تسري فقط في علامة التبويب هذه. القيمة التلقائية هي per-origin في وضع automatic، وper-tab في الحالات الأخرى.

Enum

"على مستوى المصدر"
تظل تغييرات التكبير/التصغير محفوظة في مصدر الصفحة المكبّرة، أي أنّه يتم أيضًا تكبير/تصغير جميع علامات التبويب الأخرى التي تم الانتقال إليها من المصدر نفسه. بالإضافة إلى ذلك، يتم حفظ تغييرات التكبير/التصغير per-origin مع المصدر، ما يعني أنّه عند الانتقال إلى صفحات أخرى في المصدر نفسه، يتم تكبير/تصغير كل الصفحات بمقدار التكبير/التصغير نفسه. لا يتوفّر نطاق per-origin إلا في وضع automatic.

"لكل علامة تبويب"
لا تسري تغييرات التكبير أو التصغير إلا في علامة التبويب هذه، ولا تؤثّر تغييرات التكبير أو التصغير في علامات التبويب الأخرى في تكبير أو تصغير علامة التبويب هذه. بالإضافة إلى ذلك، تتم إعادة ضبط تغييرات التكبير/التصغير per-tab عند التنقّل، إذ يؤدي التنقّل في علامة تبويب إلى تحميل الصفحات دائمًا بعوامل التكبير/التصغير per-origin.

الخصائص

MAX_CAPTURE_VISIBLE_TAB_CALLS_PER_SECOND

الإصدار 92 من Chrome والإصدارات الأحدث

الحدّ الأقصى لعدد المرات التي يمكن فيها استدعاء captureVisibleTab في الثانية captureVisibleTab مكلفة ويجب عدم استدعاؤها بشكل متكرّر.

القيمة

2

TAB_ID_NONE

Chrome 46 والإصدارات الأحدث

معرّف يمثّل عدم توفّر علامة تبويب في المتصفّح

القيمة

-1

TAB_INDEX_NONE

الإصدار 123 من Chrome والإصدارات الأحدث

فهرس يمثّل عدم توفّر فهرس علامات تبويب في tab_strip.

القيمة

-1

الطُرق

captureVisibleTab()

chrome.tabs.captureVisibleTab(
  windowId?: number,
  options?: ImageDetails,
)
: Promise<string>

تتضمّن هذه السمة المنطقة المرئية من علامة التبويب النشطة حاليًا في النافذة المحدّدة. لاستدعاء هذه الطريقة، يجب أن يكون لدى الإضافة إذن <all_urls> أو إذن activeTab. بالإضافة إلى المواقع الإلكترونية التي يمكن للإضافات الوصول إليها عادةً، تتيح هذه الطريقة للإضافات التقاط المواقع الإلكترونية الحساسة المحظورة، بما في ذلك صفحات chrome:-scheme وصفحات الإضافات الأخرى وعناوين URL التي تبدأ بـ data:. ولا يمكن التقاط هذه المواقع الإلكترونية الحساسة إلا من خلال إذن activeTab. لا يمكن الحصول على عناوين URL للملفات إلا إذا تم منح الإضافة إذن الوصول إلى الملفات.

المعلمات

المرتجعات

  • 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 للمنفذ إذا تم إغلاق علامة التبويب أو لم تكن موجودة.

create()

chrome.tabs.create(
  createProperties: object,
)
: Promise<Tab>

لإنشاء علامة تبويب جديدة

المعلمات

  • 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()

الإصدار 54 من Chrome أو إصدار أحدث
chrome.tabs.discard(
  tabId?: number,
)
: Promise<Tab | undefined>

تتجاهل علامة تبويب من الذاكرة. ستظل علامات التبويب التي تم تجاهلها مرئية على شريط علامات التبويب وتتم إعادة تحميلها عند تنشيطها.

المعلمات

  • tabId

    number اختياري

    رقم تعريف علامة التبويب المطلوب تجاهلها في حال تحديدها، يتم تجاهل علامة التبويب ما لم تكن نشطة أو تم تجاهلها من قبل. في حال عدم تحديد قيمة، يتجاهل المتصفّح علامة التبويب الأقل أهمية. قد يتعذّر ذلك إذا لم تكن هناك علامات تبويب يمكن تجاهلها.

المرتجعات

  • Promise<Tab | undefined>

    الإصدار 88 من Chrome والإصدارات الأحدث

duplicate()

chrome.tabs.duplicate(
  tabId: number,
)
: Promise<Tab | undefined>

تكرار علامة تبويب

المعلمات

  • 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()

الإصدار 72 من Chrome أو إصدار أحدث
chrome.tabs.goBack(
  tabId?: number,
)
: Promise<void>

الرجوع إلى الصفحة السابقة، إذا كانت متوفّرة

المعلمات

  • tabId

    number اختياري

    معرّف علامة التبويب التي سيتم الانتقال إلى الخلف فيها، ويتم ضبطها تلقائيًا على علامة التبويب المحدّدة في النافذة الحالية.

المرتجعات

  • Promise<void>

    الإصدار 88 من Chrome والإصدارات الأحدث

goForward()

الإصدار 72 من Chrome أو إصدار أحدث
chrome.tabs.goForward(
  tabId?: number,
)
: Promise<void>

الانتقال إلى الصفحة التالية، إذا كانت متاحة

المعلمات

  • tabId

    number اختياري

    معرّف علامة التبويب المطلوب الانتقال إلى الأمام فيها، والقيمة التلقائية هي علامة التبويب المحدّدة في النافذة الحالية

المرتجعات

  • Promise<void>

    الإصدار 88 من Chrome والإصدارات الأحدث

group()

الإصدار 88 من Chrome والإصدارات الأحدث
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 اختياري

      النافذة التي تحتوي على علامات التبويب

المرتجعات

  • الإصدار 88 من Chrome والإصدارات الأحدث

move()

chrome.tabs.move(
  tabIds: number | number[],
  moveProperties: object,
)
: Promise<Tab | Tab[]>

ينقل علامة تبويب واحدة أو أكثر إلى موضع جديد داخل النافذة أو إلى نافذة جديدة. يُرجى العِلم أنّه لا يمكن نقل علامات التبويب إلا إلى النوافذ العادية (window.type === "normal") ومنها.

المعلمات

  • tabIds

    number | number[]

    رقم تعريف علامة التبويب أو قائمة أرقام تعريف علامات التبويب المطلوب نقلها

  • moveProperties

    عنصر

    • الفهرس

      الرقم

      الموضع الذي سيتم نقل النافذة إليه استخدِم -1 لوضع علامة التبويب في نهاية النافذة.

    • windowId

      number اختياري

      يتم ضبط هذه السمة تلقائيًا على النافذة التي توجد فيها علامة التبويب حاليًا.

المرتجعات

  • Promise<Tab | Tab[]>

    الإصدار 88 من Chrome والإصدارات الأحدث

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.

  • الخيارات

    العنصر اختياري

    • documentId

      سلسلة اختيارية

      الإصدار 106 من Chrome والإصدارات الأحدث

      إرسال رسالة إلى مستند محدّد يتم تحديده بواسطة documentId بدلاً من جميع الإطارات في علامة التبويب

    • frameId

      number اختياري

      إرسال رسالة إلى إطار محدّد يتم تحديده بواسطة frameId بدلاً من جميع الإطارات في علامة التبويب

المرتجعات

  • 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()

الإصدار 88 من Chrome والإصدارات الأحدث
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 أو إضافة علامة التبويب إلى مجموعة علامات تبويب.

المعلمات

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