תיאור
אפשר להשתמש ב-API chrome.contextMenus
כדי להוסיף פריטים לתפריט ההקשר של Google Chrome. אתם יכולים לבחור את סוגי האובייקטים שעליהם יחולו התוספות של תפריט ההקשר, כמו תמונות, היפר-קישורים ודפים.
הרשאות
contextMenus
כדי להשתמש ב-API, צריך להצהיר על ההרשאה "contextMenus"
במניפסט של התוסף. כמו כן,
עליך לציין סמל בגודל 16 על 16 פיקסלים שיוצג לצד האפשרות בתפריט. לדוגמה:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
מושגים ושימוש
פריטים בתפריט ההקשר יכולים להופיע בכל מסמך (או במסגרת בתוך מסמך), גם כאלה שמכילים את הקובץ file:// .
או chrome:// . כדי לקבוע באילו מסמכים הפריטים שלכם יוכלו להופיע, צריך לציין את
השדה documentUrlPatterns
כשקוראים ל-method create()
או update()
.
ניתן ליצור כמה פריטים שרוצים בתפריט ההקשר, אבל אם יש יותר מפריט אחד מהתוסף גלויות בבת אחת, Google Chrome מכווץ אותן באופן אוטומטי לתפריט הורה יחיד.
דוגמאות
כדי לנסות את ה-API הזה, צריך להתקין את הדוגמה שלcontextActivitys API מchrome-extension-samples. של מאגר הנתונים.
סוגים
ContextType
ההקשרים השונים שבהם התפריט יכול להופיע. ציון 'הכול' מקביל לשילוב של כל שאר ההקשרים מלבד 'מרכז האפליקציות'. 'מרכז האפליקציות' ההקשר נתמך רק על ידי אפליקציות, והוא משמש להוספת אפשרויות תפריט לתפריט ההקשר שמופיע כשלוחצים על סמל האפליקציה במרכז האפליקציות, בסרגל המשימות, במגש האפליקציות וכו'. פלטפורמות שונות עשויות להגביל את התוכן שנתמך בפועל בתפריט ההקשר של מרכז האפליקציות.
Enum
"הכול"
"דף"
"מסגרת"
"בחירה"
"link"
"ניתן לעריכה"
"image"
"וידאו"
"audio"
"מרכז האפליקציות"
"browser_action"
"page_action"
"פעולה"
CreateProperties
המאפיינים של האפשרות החדשה בתפריט ההקשר.
מאפיינים
-
בוצע סימון
ערך בוליאני אופציונלי
המצב הראשוני של תיבת סימון או לחצן בחירה:
true
עבור הפריטים שנבחרו,false
עבור לא מסומן. ניתן לבחור לחצן בחירה אחד בלבד בכל פעם בקבוצה נתונה. -
ההקשרים
[ContextType, ...ContextType[]] אופציונלי
רשימת ההקשרים שבהם האפשרות הזו תופיע בתפריט. ברירת המחדל היא
['page']
. -
documentUrlPatterns
string[] אופציונלי
מגביל את הפריט כך שיחול רק על מסמכים או מסגרות שכתובת ה-URL שלהם תואמת לאחת מהתבניות הנתונים. מידע נוסף על פורמטים של תבניות מופיע במאמר תבניות התאמה.
-
פעיל
ערך בוליאני אופציונלי
האם האפשרות הזו בתפריט ההקשר מופעלת או מושבתת. ברירת המחדל היא
true
. -
id [מזהה]
מחרוזת אופציונלי
המזהה הייחודי שצריך להקצות לפריט הזה. חובה לדפי אירועים. התוסף לא יכול להיות זהה למזהה אחר.
-
parentId
string | מספר אופציונלי
המזהה של אפשרות בתפריט הראשי. הפעולה הזו הופכת את הפריט לצאצא של פריט שנוסף בעבר.
-
targetUrlPatterns
string[] אופציונלי
בדומה ל-
documentUrlPatterns
, מסננים המבוססים על המאפייןsrc
של התגיםimg
,audio
ו-video
ועל המאפייןhref
של תגיa
. -
title
מחרוזת אופציונלי
הטקסט שיוצג בפריט. הערך הזה חובה, אלא אם הערך של
type
הואseparator
. כאשר ההקשר הואselection
, צריך להשתמש ב-%s
בתוך המחרוזת כדי להציג את הטקסט שנבחר. לדוגמה, אם הערך של הפרמטר הזה הוא 'Translate '%s' ללטינית חזירית" והמשתמש בוחר במילה 'מגניב', האפשרות בתפריט ההקשר לבחירה היא 'תרגום 'מגניב' ללטינית חזירית". -
סוג
ItemType אופציונלי
הסוג של האפשרות בתפריט. ברירת המחדל היא
normal
. -
גלוי
ערך בוליאני אופציונלי
מציין אם הפריט גלוי בתפריט.
-
onclick
ביטול אופציונלי
פונקציה מופעלת מחדש כשלוחצים על אפשרות בתפריט. לא זמין בתוך Service Worker. במקום זאת, עליך לרשום מאזינים ל-
contextMenus.onClicked
.הפונקציה
onclick
נראית כך:(info: OnClickData, tab: Tab) => {...}
-
מידע
מידע על הפריט שלחצו עליו וההקשר שבו התרחש הקליק.
-
כרטיסייה
הפרטים של הכרטיסייה שבה בוצע הקליק. הפרמטר הזה לא קיים באפליקציות פלטפורמה.
-
ItemType
הסוג של האפשרות בתפריט.
Enum
"רגיל"
"תיבת סימון"
"רדיו"
"מפריד"
OnClickData
מידע שנשלח כשלוחצים על פריט בתפריט ההקשר.
מאפיינים
-
בוצע סימון
ערך בוליאני אופציונלי
דגל שמציין את המצב של תיבת סימון או פריט בחירה לאחר לחיצה עליהם.
-
ניתנת לעריכה
בוליאני
דגל שמציין אם הרכיב ניתן לעריכה (קלט טקסט, אזור טקסט וכו').
-
frameId
מספר אופציונלי
Chrome 51 ואילךמזהה המסגרת של הרכיב שבו בוצעה לחיצה על תפריט ההקשר, אם הוא היה במסגרת.
-
frameUrl
מחרוזת אופציונלי
כתובת ה-URL של המסגרת של הרכיב שבו בוצעה לחיצה על תפריט ההקשר, אם היא הייתה במסגרת.
-
linkUrl
מחרוזת אופציונלי
אם הרכיב הוא קישור, תוצג כתובת ה-URL שאליה הוא מפנה.
-
mediaType
מחרוזת אופציונלי
אחד מהערכים 'image', 'video' או 'audio' אם תפריט ההקשר הופעל באחד מסוגי הרכיבים האלה.
-
string | מספר טלפון
המזהה של האפשרות בתפריט שעליה המשתמש לחץ.
-
pageUrl
מחרוזת אופציונלי
כתובת ה-URL של הדף שבו בוצעה לחיצה על האפשרות בתפריט. המאפיין הזה לא מוגדר אם הקליק התרחש בהקשר שבו אין דף נוכחי, למשל בתפריט ההקשר של מרכז האפליקציות.
-
parentMenuItemId
string | מספר אופציונלי
מזהה ההורה, אם יש, של הפריט שעליו המשתמש לחץ.
-
selectionText
מחרוזת אופציונלי
הטקסט של ההקשר שנבחר, אם יש כזה.
-
srcUrl
מחרוזת אופציונלי
הפרמטר הזה יוצג ברכיבים עם 'src' כתובת URL.
-
wasChecked
ערך בוליאני אופציונלי
דגל שמציין את המצב של תיבת סימון או פריט רדיו לפני לחיצה עליהם.
מאפיינים
ACTION_MENU_TOP_LEVEL_LIMIT
המספר המקסימלי של פריטי תוסף ברמה העליונה שניתן להוסיף לתפריט הקשר של פעולות של תוסף. המערכת תתעלם מפריטים שחורגים מהמגבלה הזו.
ערך
6
שיטות
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
)
יצירת אפשרות חדשה בתפריט ההקשר. אם מתרחשת שגיאה במהלך היצירה, יכול להיות שהיא לא תזוהה עד שהקריאה החוזרת של היצירה תופעל. הפרטים יופיעו ב-runtime.lastError
.
פרמטרים
-
createProperties
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
מספר | String (מחרוזת)
המזהה של הפריט החדש שנוצר.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
)
הסרה של אפשרות בתפריט ההקשר.
פרמטרים
-
string | מספר טלפון
המזהה של האפשרות בתפריט ההקשר שרוצים להסיר.
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
הבטחה<Empty>
Chrome 123 ואילךהבטחות נתמכות במניפסט מגרסה V3 ואילך, אבל ניתנות קריאות חוזרות (callback) בשביל תאימות לאחור. לא ניתן להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה הזו מצליחה לפתור את הבעיה באותו סוג שמועבר לקריאה החוזרת.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
)
הסרה של כל האפשרויות בתפריט ההקשר שנוספו על ידי התוסף הזה.
פרמטרים
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
הבטחה<Empty>
Chrome 123 ואילךהבטחות נתמכות במניפסט מגרסה V3 ואילך, אבל ניתנות קריאות חוזרות (callback) בשביל תאימות לאחור. לא ניתן להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה הזו מצליחה לפתור את הבעיה באותו סוג שמועבר לקריאה החוזרת.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
)
מעדכן פריט שנוצר בעבר בתפריט ההקשר.
פרמטרים
-
id [מזהה]
string | מספר טלפון
המזהה של הפריט שצריך לעדכן.
-
updateProperties
אובייקט
המאפיינים שצריך לעדכן. יכולה להשתמש באותם ערכים כמו הפונקציה
contextMenus.create
.-
בוצע סימון
ערך בוליאני אופציונלי
-
ההקשרים
[ContextType, ...ContextType[]] אופציונלי
-
documentUrlPatterns
string[] אופציונלי
-
פעיל
ערך בוליאני אופציונלי
-
parentId
string | מספר אופציונלי
המזהה של הפריט שצריך להגדיר כהורה של הפריט הזה. הערה: אי אפשר להגדיר פריט בתור צאצא של עצמו.
-
targetUrlPatterns
string[] אופציונלי
-
title
מחרוזת אופציונלי
-
סוג
ItemType אופציונלי
-
גלוי
ערך בוליאני אופציונלי
Chrome 62+מציין אם הפריט גלוי בתפריט.
-
onclick
ביטול אופציונלי
הפונקציה
onclick
נראית כך:(info: OnClickData, tab: Tab) => {...}
-
מידעChrome 44 ואילך
-
כרטיסייהChrome 44 ואילך
הפרטים של הכרטיסייה שבה בוצע הקליק. הפרמטר הזה לא קיים באפליקציות פלטפורמה.
-
-
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
הבטחה<Empty>
Chrome 123 ואילךהבטחות נתמכות במניפסט מגרסה V3 ואילך, אבל ניתנות קריאות חוזרות (callback) בשביל תאימות לאחור. לא ניתן להשתמש בשתיהן באותה בקשה להפעלת פונקציה. ההבטחה הזו מצליחה לפתור את הבעיה באותו סוג שמועבר לקריאה החוזרת.
אירועים
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
מופעל כשלוחצים על פריט בתפריט ההקשר.
פרמטרים
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(info: OnClickData, tab?: tabs.Tab) => void
-
מידע
-
כרטיסייה
tabs.Tab אופציונלי
-