إنشاء قائمة سياقات

تظهر قائمة سياق للنقرة البديلة (غالبًا ما تُعرف بالنقر بزر الماوس الأيمن) للماوس. لإنشاء قائمة سياقات، يجب أولاً إضافة إذن "contextMenus" إلى ملفManifest.json.

manifest.json:

  "permissions": [
    "contextMenus"
  ],

ويمكنك اختياريًا استخدام المفتاح "icons" إذا كنت تريد عرض رمز بجانب عنصر في القائمة. في هذا المثال، يستخدم عنصر القائمة لإضافة "بحث Google الشامل" رمزًا أبعاده 16 × 16.

عنصر قائمة سياقات يحتوي على رمز مقاس 16 × 16.
عنصر في قائمة السياقات يحتوي على رمز مقاس 16 × 16.

هذا المثال مأخوذ من نموذج قائمة سياقات "بحث Google" العالمية التي تقدّم خيارات متعدّدة لقائمة السياق. عندما تحتوي إحدى الإضافات على أكثر من قائمة سياقات واحدة، يصغّر Chrome هذه الإضافات تلقائيًا في قائمة رئيسية واحدة كما هو موضّح هنا:

قائمة سياقات مدمجة.
الشكل 4: قائمة سياقات وقائمة فرعية مدمجة.

يُظهر النموذج ذلك من خلال استدعاء contextMenus.create() في عامل خدمات الإضافات. يتم استيراد عناصر القائمة الفرعية من ملف locales.js. ثم يتكرر runtime.onInstalled فوقها.

service-factor.js:

const tldLocales = {
  'com.au': 'Australia',
  'com.br': 'Brazil',
  ...
}

chrome.runtime.onInstalled.addListener(async () => {
  for (let [tld, locale] of Object.entries(tldLocales)) {
    chrome.contextMenus.create({
      id: tld,
      title: locale,
      type: 'normal',
      contexts: ['selection'],
    });
  }
});