תאריך הרענון: 2026-09-25 robots: noindex
תיאור
אפשר להשתמש ב-chrome.contextMenus API כדי להוסיף פריטים לתפריט ההקשר של Google Chrome. אתם יכולים לבחור לאילו סוגים של אובייקטים יחולו התוספות לתפריט ההקשר, כמו תמונות, היפר-קישורים ודפים.
הרשאות
contextMenusשימוש
פריטים בתפריט ההקשר יכולים להופיע בכל מסמך (או במסגרת בתוך מסמך), גם במסמכים עם כתובות URL מסוג file:// או chrome:// . כדי לקבוע באילו מסמכים הפריטים יכולים להופיע, צריך לציין את השדה documentUrlPatterns כשקוראים לשיטה create() או update().
אתם יכולים ליצור כמה פריטים שאתם צריכים בתפריט ההקשר, אבל אם יותר מפריט אחד מהתוסף שלכם מוצג בו-זמנית, Google Chrome מכווץ אותם אוטומטית לתפריט אב יחיד.
מניפסט
כדי להשתמש ב-API, צריך להצהיר על ההרשאה contextMenus במניפסט של התוסף. בנוסף, צריך לציין סמל בגודל 16x16 פיקסלים שיוצג לצד פריט התפריט. לדוגמה:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
דוגמאות
כדי לנסות את ה-API הזה, צריך להתקין את הדוגמה ל-contextMenus API ממאגר chrome-extension-samples.
סוגים
ContextType
ההקשרים השונים שבהם יכול להופיע תפריט. הציון all שווה לשילוב של כל ההקשרים האחרים, חוץ מ-launcher. ההקשר 'מרכז האפליקציות' נתמך רק באפליקציות, והוא משמש להוספת פריטי תפריט לתפריט ההקשר שמופיע כשלוחצים על סמל האפליקציה במרכז האפליקציות, בסרגל המשימות, במזח וכו'. יכול להיות שבפלטפורמות שונות יהיו הגבלות על מה שנתמך בפועל בתפריט ההקשר של מרכז האפליקציות.
ספירה
"all"
"page"
frame
'selection'
"link"
"editable"
"image"
'video'
"audio"
launcher
"browser_action"
'page_action'
'action'
'tab'
CreateProperties
מאפיינים של פריט חדש בתפריט ההקשר.
מאפיינים
-
בוצע סימון
boolean אופציונלי
המצב ההתחלתי של תיבת סימון או כפתור בחירה:
trueאם נבחר,falseאם לא נבחר. אפשר לבחור רק לחצן רדיו אחד בכל פעם בקבוצה נתונה. -
contexts
[ContextType, ...ContextType[]] optional
רשימת ההקשרים שבהם יופיע הפריט הזה בתפריט. ברירת המחדל היא
['page']. -
documentUrlPatterns
string[] אופציונלי
ההגדרה הזו מגבילה את הפריט כך שיחול רק על מסמכים או על מסגרות שכתובת ה-URL שלהם תואמת לאחד מהדפוסים שצוינו. פרטים נוספים על פורמטים של תבניות זמינים במאמר תבניות התאמה.
-
פעיל
boolean אופציונלי
קובע אם פריט החיפוש בתפריט ההקשר מופעל או מושבת. ברירת המחדל היא
true. -
id [מזהה]
מחרוזת אופציונלי
המזהה הייחודי שמוקצה לפריט הזה. חובה בדפי אירועים. המזהה לא יכול להיות זהה למזהה אחר של התוסף הזה.
-
parentId
string | number optional
המזהה של פריט בתפריט הראשי. כך הפריט הופך לפריט צאצא של פריט שנוסף קודם.
-
targetUrlPatterns
string[] אופציונלי
בדומה ל
documentUrlPatterns, מסננים שמבוססים על מאפייןsrcשל תגיimg,audioו-videoועל מאפייןhrefשל תגיa. -
title
מחרוזת אופציונלי
הטקסט שיוצג בפריט. מאפיין חובה, אלא אם הערך של
typeהואseparator. אם ההקשר הואselection, צריך להשתמש ב-%sבתוך המחרוזת כדי להציג את הטקסט שנבחר. לדוגמה, אם הערך של הפרמטר הזה הוא Translate '%s' to Pig Latin (תרגום של '%s' ל-Pig Latin) והמשתמש בוחר במילה cool (מגניב), הפריט בתפריט ההקשר של הבחירה הוא Translate 'cool' to Pig Latin (תרגום של 'cool' ל-Pig Latin). -
סוג
ItemType אופציונלי
סוג הפריט בתפריט. ברירת המחדל היא
normal. -
גלוי
boolean אופציונלי
האם הפריט גלוי בתפריט.
-
onclick
void אופציונלי
פונקציה שמופעלת כשלוחצים על פריט בתפריט. האפשרות הזו לא זמינה ב-service worker. במקום זאת, צריך לרשום listener ל-
contextMenus.onClicked.הפונקציה
onclickנראית כך:(info: OnClickData, tab: Tab) => {...}
-
מידע
מידע על הפריט שעליו לחצו וההקשר שבו התרחש הקליק.
-
Tab
פרטי הכרטיסייה שבה התרחש הקליק. הפרמטר הזה לא קיים באפליקציות לפלטפורמות.
-
ItemType
סוג הפריט בתפריט.
ספירה
'normal'
"checkbox"
'radio'
"separator"
OnClickData
מידע שנשלח כשלוחצים על פריט בתפריט ההקשר.
מאפיינים
-
בוצע סימון
boolean אופציונלי
סימון שמציין את המצב של תיבת סימון או של פריט מסוג כפתור בחירה אחרי שלוחצים עליהם.
-
ניתן לעריכה
בוליאני
סימון שמציין אם אפשר לערוך את הרכיב (קלט טקסט, אזור טקסט וכו').
-
frameId
מספר אופציונלי
Chrome 51 ואילךהמזהה של המסגרת של הרכיב שעליו לחצו כדי לפתוח את תפריט ההקשר, אם הוא היה במסגרת.
-
frameUrl
מחרוזת אופציונלי
כתובת ה-URL של המסגרת של האלמנט שבו לחצו על תפריט ההקשר, אם הוא היה במסגרת.
-
linkUrl
מחרוזת אופציונלי
אם הרכיב הוא קישור, כתובת ה-URL שאליה הוא מפנה.
-
mediaType
מחרוזת אופציונלי
אחת מהאפשרויות image, video או audio אם תפריט ההקשר הופעל על אחד מסוגי הרכיבים האלה.
-
מחרוזת | מספר
המזהה של פריט התפריט שהמשתמש לחץ עליו.
-
pageUrl
מחרוזת אופציונלי
כתובת ה-URL של הדף שבו לחצו על פריט התפריט. המאפיין הזה לא מוגדר אם הלחיצה התרחשה בהקשר שבו אין דף נוכחי, כמו בתפריט ההקשר של מרכז האפליקציות.
-
parentMenuItemId
string | number optional
מזהה ההורה, אם יש כזה, של הפריט שעליו לחצו.
-
selectionText
מחרוזת אופציונלי
הטקסט של הבחירה בהקשר, אם יש כזה.
-
srcUrl
מחרוזת אופציונלי
יופיע ברכיבים עם כתובת URL של 'מקור'.
-
wasChecked
boolean אופציונלי
סימון שמציין את המצב של תיבת סימון או של פריט מסוג כפתור בחירה לפני שהמשתמש לחץ עליו.
מאפיינים
ACTION_MENU_TOP_LEVEL_LIMIT
המספר המקסימלי של פריטים ברמת העליונה שאפשר להוסיף לתפריט ההקשר של פעולת התוסף. המערכת תתעלם מפריטים שחורגים מהמגבלה הזו.
ערך
6
Methods
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
יוצר פריט חדש בתפריט ההקשר. אם מתרחשת שגיאה במהלך היצירה, יכול להיות שהיא לא תזוהה עד שהקריאה החוזרת ליצירה תופעל. הפרטים יופיעו ב-runtime.lastError.
פרמטרים
-
createProperties
-
callback
פונקציה אופציונלית
הפרמטר
callbackנראה כך:() => void
החזרות
-
מספר | מחרוזת
המזהה של הפריט שנוצר.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
): Promise<void>
הסרת פריט מתפריט ההקשר.
פרמטרים
-
מחרוזת | מספר
המזהה של הפריט בתפריט ההקשר שרוצים להסיר.
-
callback
פונקציה אופציונלית
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome 123 ואילךההבטחה מתקיימת כשתפריט ההקשר מוסר.
התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
): Promise<void>
הסרת כל הפריטים בתפריט ההקשר שנוספו על ידי התוסף הזה.
פרמטרים
-
callback
פונקציה אופציונלית
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome 123 ואילךההבטחה מתקיימת כשההסרה מסתיימת.
התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
): Promise<void>
מעדכן פריט בתפריט הקשר שנוצר קודם.
פרמטרים
-
id [מזהה]
מחרוזת | מספר
המזהה של הפריט שרוצים לעדכן.
-
updateProperties
אובייקט
המאפיינים לעדכון. אפשר להזין את אותם ערכים כמו בפונקציה
contextMenus.create.-
בוצע סימון
boolean אופציונלי
-
contexts
[ContextType, ...ContextType[]] optional
-
documentUrlPatterns
string[] אופציונלי
-
פעיל
boolean אופציונלי
-
parentId
string | number optional
המזהה של הפריט שרוצים להגדיר כפריט האב של הפריט הזה. הערה: אי אפשר להגדיר פריט כצאצא של צאצא שלו.
-
targetUrlPatterns
string[] אופציונלי
-
title
מחרוזת אופציונלי
-
סוג
ItemType אופציונלי
-
גלוי
boolean אופציונלי
Chrome 62 ואילךהאם הפריט גלוי בתפריט.
-
onclick
void אופציונלי
הפונקציה
onclickנראית כך:(info: OnClickData, tab: Tab) => {...}
-
מידעChrome 44 ואילך
-
TabChrome 44 ואילך
פרטי הכרטיסייה שבה התרחש הקליק. הפרמטר הזה לא קיים באפליקציות לפלטפורמות.
-
-
-
callback
פונקציה אופציונלית
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome 123 ואילךההבטחה מתקיימת כשתפריט ההקשר מתעדכן.
התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
אירועים
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
מופעלת כשלוחצים על פריט בתפריט ההקשר.
פרמטרים
-
callback
פונקציה
הפרמטר
callbackנראה כך:(info: OnClickData, tab?: tabs.Tab) => void
-
מידע
-
Tab
tabs.Tab אופציונלי
-