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