chrome.events

תיאור

מרחב השמות chrome.events מכיל סוגים נפוצים של ממשקי API ששולחים אירועים כדי ליידע אותך על משהו מעניין.

מושגים ושימוש

Event הוא אובייקט שמאפשר לקבל התראה כשמתרחש משהו מעניין. הנה דוגמה לשימוש באירוע chrome.alarms.onAlarm כדי לקבל התראה בכל פעם שחולפת התראה:

chrome.alarms.onAlarm.addListener((alarm) => {
  appendToLog(`alarms.onAlarm -- name: ${alarm.name}, scheduledTime: ${alarm.scheduledTime}`);
});

כמו שרואים בדוגמה, נרשמים לקבלת התראות באמצעות addListener(). הארגומנט addListener() הוא תמיד פונקציה שאתם מגדירים לטיפול באירוע, אבל הפרמטרים של תלויים באירוע שבו אתם מטפלים. מתבצעת בדיקה במסמכי התיעוד של alarms.onAlarm, אפשר לראות שלפונקציה יש פרמטר אחד: אובייקט alarms.Alarm שמכיל פרטים על ההתראה שחלפה.

דוגמאות לממשקי API באמצעות אירועים: התראות, i18n, זהות, זמן ריצה. רוב Chrome ממשקי API כן.

מטפלים הצהרתיים באירועים

הגורמים שמטפלים באירועים הצהרתיים מספקים אמצעי להגדרת כללים שמורכבים מתנאים הצהרתיים ופעולות. הערכת התנאים מתבצעת בדפדפן ולא במנוע JavaScript, ולכן זמן אחזור הלוך ושוב שמאפשר יעילות גבוהה מאוד.

משתמשים בגורמים הצהרתיים לטיפול באירועים, לדוגמה, Declarative Content API בדף הזה מתוארים המושגים הבסיסיים של כל האירועים המוצהרים של ה-handlers שלו.

כללים

הכלל הפשוט ביותר האפשרי כולל תנאי אחד או יותר ופעולה אחת או יותר:

const rule = {
  conditions: [ /* my conditions */ ],
  actions: [ /* my actions */ ]
};

אם אחד מהתנאים מתקיים, כל הפעולות מבוצעות.

בנוסף לתנאים ולפעולות, אפשר להגדיר לכל כלל מזהה כדי לפשט את התהליך ביטול הרישום של כללים שנרשמו בעבר, ועדיפות להגדרת קדימות בין כללים. יש להתייחס לעדיפויות רק אם יש סתירה בין כללים או שצריך לבצע אותם הזמנה. הפעולות מתבצעות בסדר יורד, לפי העדיפות של הכללים שלהן.

const rule = {
  id: "my rule",  // optional, will be generated if not set.
  priority: 100,  // optional, defaults to 100.
  conditions: [ /* my conditions */ ],
  actions: [ /* my actions */ ]
};

אובייקטים של אירוע

יכול להיות שאובייקטים של אירועים תומכים בכללים. אובייקטי האירועים האלה לא מפעילים פונקציית קריאה חוזרת כאשר אירועים מתרחשים, אבל צריך לבדוק אם לכלל רשום יש לפחות תנאי אחד שמתקיים הפעולות שמשויכות לכלל הזה. לאובייקטים של אירועים שתומכים ב-API המוצהר יש שלושה שיטות רלוונטיות: events.Event.addRules(),