الوصف
استخدِم واجهة برمجة التطبيقات chrome.contextMenus
لإضافة عناصر إلى قائمة السياق في Google Chrome. يمكنك اختيار أنواع العناصر التي تنطبق عليها إضافات قائمة السياقات، مثل الصور والروابط الفائقة والصفحات.
الأذونات
contextMenus
يجب الإفصاح عن الإذن "contextMenus"
في ملف بيان الإضافة لاستخدام واجهة برمجة التطبيقات. بالإضافة إلى ذلك،
يجب تحديد رمز أبعاده 16 x 16 بكسل لعرضه بجانب عنصر القائمة. على سبيل المثال:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
المفاهيم وطريقة الاستخدام
يمكن أن تظهر عناصر قائمة السياقات في أي مستند (أو إطار ضمن مستند)، حتى تلك التي تحتوي على عناوين URL من النوع file://
أو chrome://. للتحكّم في المستندات التي يمكن أن تظهر فيها عناصرك، حدِّد الحقل
documentUrlPatterns
عند استدعاء الطريقتَين create()
أو update()
.
يمكنك إنشاء عدد العناصر الذي تريده في قائمة السياقات، ولكن إذا كان هناك أكثر من عنصر واحد من إضافتك مرئيًا في الوقت نفسه، يجمعها Google Chrome تلقائيًا في قائمة رئيسية واحدة.
أمثلة
لتجربة واجهة برمجة التطبيقات هذه، ثبِّت مثال contextMenus API من مستودع chrome-extension-samples.
الأنواع
ContextType
السياقات المختلفة التي يمكن أن تظهر فيها القائمة ويؤدي تحديد "الكل" إلى دمج جميع السياقات الأخرى باستثناء "مشغّل التطبيقات". لا يتوفّر سياق "مشغّل التطبيقات" إلا للتطبيقات، ويتم استخدامه لإضافة عناصر قائمة إلى قائمة السياق التي تظهر عند النقر على رمز التطبيق في مشغّل التطبيقات/شريط التطبيقات/شريط التطبيقات المضمّنة/غير ذلك. وقد تفرض الأنظمة الأساسية المختلفة قيودًا على العناصر المتاحة فعليًا في قائمة سياق مشغّل التطبيقات.
Enum
"all"
"page"
"frame"
"selection"
"link"
"editable"
"image"
"video"
"audio"
"launcher"
"browser_action"
"page_action"
"action"
CreateProperties
خصائص عنصر قائمة السياقات الجديد
أماكن إقامة
-
تم التحديد
منطقي اختياري
الحالة الأولية لمربّع اختيار أو زر اختيار:
true
للاختيار،false
لعدم الاختيار يمكن اختيار زر اختيار واحد فقط في كل مرة في مجموعة معيّنة. -
السياقات
[ContextType, ...ContextType[]] اختياري
قائمة السياقات التي سيظهر فيها عنصر القائمة هذا الإعداد التلقائي هو
['page']
. -
documentUrlPatterns
سلسلة اختيارية
يحصر العنصر في التطبيق على المستندات أو الإطارات التي يتطابق عنوان URL الخاص بها مع أحد الأنماط المحدّدة. لمعرفة التفاصيل عن تنسيقات الأنماط، يُرجى الاطّلاع على أنماط المطابقة.
-
مفعّلة
منطقي اختياري
ما إذا كان عنصر قائمة السياقات هذا مفعّلاً أم غير مفعّل الإعداد التلقائي هو
true
. -
id
سلسلة اختيارية
المعرّف الفريد الذي سيتمّ تعيينه لهذا العنصر. مطلوب لصفحات الفعاليات. لا يمكن أن يكون هو نفسه معرّف آخر لهذه الإضافة.
-
parentId
سلسلة | رقم اختياري
معرّف عنصر قائمة رئيسي، ما يجعل العنصر فرعيًا لعنصر تمت إضافته سابقًا.
-
targetUrlPatterns
سلسلة اختيارية
على غرار
documentUrlPatterns
، الفلاتر المستندة إلى سمةsrc
لعلاماتimg
وaudio
وvideo
وسمةhref
لعلاماتa
-
title
سلسلة اختيارية
النص المطلوب عرضه في العنصر، وهو مطلوبة ما لم يكن
type
هوseparator
. عندما يكون السياقselection
، استخدِم%s
داخل السلسلة لعرض النص المحدّد. على سبيل المثال، إذا كانت قيمة هذه المَعلمة هي "ترجمة %s إلى لغة Pig Latin" واختار المستخدم الكلمة "رائع"، سيكون عنصر قائمة السياقات للاختيار هو "ترجمة كلمة "رائع" إلى لغة Pig Latin". -
كتابة
ItemType اختيارية
نوع عنصر القائمة. الإعداد التلقائي هو
normal
. -
مرئي
منطقي اختياري
ما إذا كان العنصر مرئيًا في القائمة
-
onclick
void اختياري
دالة يتمّ استدعاؤها عند النقر على عنصر القائمة. لا يتوفّر هذا الإجراء داخل مشغّل الخدمة، وبدلاً من ذلك، عليك تسجيل مستمع
contextMenus.onClicked
.تبدو الدالة
onclick
على النحو التالي:(info: OnClickData, tab: Tab) => {...}
-
معلومات
معلومات عن العنصر الذي تم النقر عليه والسياق الذي حدثت فيه النقرة
-
tab
تفاصيل علامة التبويب التي حدثت فيها النقرة لا تتوفّر هذه المَعلمة لتطبيقات النظام الأساسي.
-
ItemType
نوع عنصر القائمة.
Enum
"normal"
"checkbox"
"radio"
"separator"
OnClickData
المعلومات المُرسَلة عند النقر على عنصر في قائمة السياق
أماكن إقامة
-
تم التحديد
منطقي اختياري
علامة تشير إلى حالة مربّع اختيار أو زر اختيار بعد النقر عليه
-
قابل للتعديل
قيمة منطقية
علامة تشير إلى ما إذا كان العنصر قابلاً للتعديل (إدخال نص أو textarea أو غير ذلك)
-
frameId
رقم اختياري
Chrome 51 والإصدارات الأحدثرقم تعريف الإطار للعنصر الذي تم النقر على قائمة السياقات فيه، إذا كان في إطار
-
frameUrl
سلسلة اختيارية
عنوان URL لإطار العنصر الذي تم النقر على قائمة السياقات فيه، إذا كان في إطار
-
linkUrl
سلسلة اختيارية
إذا كان العنصر رابطًا، يكون عنوان URL الذي يشير إليه.
-
mediaType
سلسلة اختيارية
أحد الخيارات "صورة" أو "فيديو" أو "صوت" إذا تم تفعيل قائمة السياقات على أحد أنواع هذه العناصر
-
سلسلة | رقم
رقم تعريف عنصر القائمة الذي تم النقر عليه
-
pageUrl
سلسلة اختيارية
عنوان URL للصفحة التي تم النقر فيها على عنصر القائمة. لا يتم ضبط هذه السمة إذا حدثت النقرة في سياق لا تتوفّر فيه صفحة حالية، مثل قائمة سياق مشغّل التطبيقات.
-
parentMenuItemId
سلسلة | رقم اختياري
رقم تعريف العنصر الرئيسي، إن توفّر، للعنصر الذي تم النقر عليه
-
selectionText
سلسلة اختيارية
نص اختيار السياق، إن توفّر
-
srcUrl
سلسلة اختيارية
ستظهر للعناصر التي تحتوي على عنوان URL من النوع "src".
-
wasChecked
منطقي اختياري
علامة تشير إلى حالة مربّع اختيار أو زر اختيار قبل النقر عليه
أماكن إقامة
ACTION_MENU_TOP_LEVEL_LIMIT
الحد الأقصى لعدد عناصر الإضافة من المستوى الأعلى التي يمكن إضافتها إلى قائمة سياق إجراء الإضافة وسيتم تجاهل أي عناصر تتجاوز هذا الحدّ.
القيمة
6
الطُرق
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
)
لإنشاء عنصر جديد في قائمة السياقات إذا حدث خطأ أثناء الإنشاء، قد لا يتم رصده إلى أن يتم تشغيل دالة الاستدعاء لإنشاء الحملة، وسيتم تضمين التفاصيل في runtime.lastError
.
المعلمات
-
createProperties
-
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:() => void
المرتجعات
-
عدد | سلسلة
معرّف العنصر الذي تم إنشاؤه حديثًا.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
)
تزيل عنصرًا من قائمة السياقات.
المعلمات
-
سلسلة | رقم
رقم تعريف عنصر قائمة السياقات المطلوب إزالته
-
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 123 والإصدارات الأحدثتتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
)
تزيل هذه الإعدادات جميع عناصر قائمة السياقات التي أضافتها هذه الإضافة.
المعلمات
-
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 123 والإصدارات الأحدثتتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
)
تعديل عنصر قائمة سياق تم إنشاؤه سابقًا
المعلمات
-
id
سلسلة | رقم
معرّف العنصر المطلوب تعديله.
-
updateProperties
عنصر
السمات المطلوب تعديلها تقبل الدالة القيم نفسها التي تقبلها الدالة
contextMenus.create
.-
تم التحديد
منطقي اختياري
-
السياقات
[ContextType, ...ContextType[]] اختياري
-
documentUrlPatterns
سلسلة اختيارية
-
مفعّلة
منطقي اختياري
-
parentId
سلسلة | رقم اختياري
معرّف العنصر الذي سيتمّ جعله العنصر الرئيسي لهذا العنصر. ملاحظة: لا يمكنك ضبط عنصر ليصبح عنصرًا فرعيًا لعنصر فرعي له.
-
targetUrlPatterns
سلسلة اختيارية
-
title
سلسلة اختيارية
-
كتابة
ItemType اختيارية
-
مرئي
منطقي اختياري
Chrome 62 والإصدارات الأحدثما إذا كان العنصر مرئيًا في القائمة
-
onclick
void اختياري
تبدو الدالة
onclick
على النحو التالي:(info: OnClickData, tab: Tab) => {...}
-
معلوماتChrome 44 والإصدارات الأحدث
-
tabChrome 44 والإصدارات الأحدث
تفاصيل علامة التبويب التي حدثت فيها النقرة لا تتوفّر هذه المَعلمة لتطبيقات النظام الأساسي.
-
-
-
ردّ الاتصال
الدالة اختيارية
تظهر المَعلمة
callback
على النحو التالي:() => void
المرتجعات
-
Promise<void>
Chrome 123 والإصدارات الأحدثتتوفّر الوعود في الإصدار Manifest V3 والإصدارات الأحدث، ولكن يتم توفير طلبات الاستدعاء لأجل التوافق مع الإصدارات القديمة. ولا يمكنك استخدام كليهما في طلب الدالة نفسه. يتم حلّ الوعد بالنوع نفسه الذي يتم تمريره إلى دالة الاستدعاء.
الفعاليات
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
يتمّ تشغيله عند النقر على عنصر في قائمة السياقات.
المعلمات
-
ردّ الاتصال
دالة
تظهر المَعلمة
callback
على النحو التالي:(info: OnClickData, tab?: tabs.Tab) => void
-
معلومات
-
tab
tabs.Tab اختياري
-