refresh date: 2026-09-25 robots: noindex
תיאור
אפשר להשתמש ב-API של chrome.declarativeContent כדי לבצע פעולות בהתאם לתוכן של דף, בלי לבקש הרשאה לקרוא את התוכן של הדף.
הרשאות
declarativeContentשימוש
Declarative Content API מאפשר להפעיל את הפעולה של התוסף בהתאם לכתובת ה-URL של דף אינטרנט, או אם סלקטור ב-CSS תואם לרכיב בדף, בלי להוסיף הרשאות מארח או להחדיר סקריפט תוכן.
משתמשים בהרשאה activeTab כדי ליצור אינטראקציה עם דף אחרי שהמשתמש לוחץ על הפעולה של התוסף.
כללים
הכללים מורכבים מתנאים ומפעולות. אם אחד מהתנאים מתקיים, כל הפעולות מבוצעות. הפעולות הן setIcon ו-showAction.
ה-PageStateMatcher תואם לדפי אינטרנט רק אם כל הקריטריונים שברשימה מתקיימים. הוא יכול להתאים לכתובת URL של דף, לסלקטור מורכב של CSS או למצב הסימנייה של דף. הכלל הבא מפעיל את פעולת התוסף בדפי Google כשיש שדה סיסמה:
let rule1 = {
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostSuffix: '.google.com', schemes: ['https'] },
css: ["input[type='password']"]
})
],
actions: [ new chrome.declarativeContent.ShowAction() ]
};
כדי להפעיל את הפעולה של התוסף גם באתרים של Google עם סרטון, אפשר להוסיף תנאי שני, כי כל תנאי מספיק כדי להפעיל את כל הפעולות שצוינו:
let rule2 = {
conditions: [
new chrome.declarativeContent.PageStateMatcher({
pageUrl: { hostSuffix: '.google.com', schemes: ['https'] },
css: ["input[type='password']"]
}),
new chrome.declarativeContent.PageStateMatcher({
css: ["video"]
})
],
actions: [ new chrome.declarativeContent.ShowAction() ]
};
האירוע onPageChanged בודק אם יש כלל עם תנאי אחד לפחות שמתקיים, ומבצע את הפעולות. הכללים נשמרים בין סשנים של גלישה. לכן, במהלך ההתקנה של התוסף, צריך קודם להשתמש ב-removeRules כדי למחוק כללים שהותקנו בעבר, ואז להשתמש ב-addRules כדי לרשום כללים חדשים.
chrome.runtime.onInstalled.addListener(function(details) {
chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
chrome.declarativeContent.onPageChanged.addRules([rule2]);
});
});
עם ההרשאה activeTab, התוסף לא יציג אזהרות לגבי הרשאות, וכשהמשתמש ילחץ על פעולת התוסף, הוא יפעל רק בדפים רלוונטיים.
התאמה לכתובת URL של דף
ה-PageStateMatcher.pageurl תואם כשהקריטריונים של כתובת ה-URL מתקיימים. הקריטריונים הנפוצים ביותר הם שרשור של מארח, נתיב או כתובת URL, ואחריהם Contains, Equals, Prefix או Suffix. בטבלה הבאה מופיעות כמה דוגמאות:
| קריטריונים | התאמות |
|---|---|
{ hostSuffix: 'google.com' } |
כל כתובות ה-URL של Google |
{ pathPrefix: '/docs/extensions' } |
כתובות URL של מסמכי תיעוד של תוספים |
{ urlContains: 'developer.chrome.com' } |
כל כתובות ה-URL של מסמכי התיעוד למפתחים של Chrome |
כל הקריטריונים הם תלויי אותיות רישיות. רשימה מלאה של הקריטריונים מופיעה במאמר UrlFilter.
התאמה של שירות CSS
התנאים של PageStateMatcher.css חייבים להיות בוררים מורכבים, כלומר אי אפשר לכלול קומבינטורים כמו רווחים או ">" בבוררים. כך Chrome יכול להתאים את הסלקטורים בצורה יעילה יותר.
| בוררים מורכבים (תקין) | בוררים מורכבים (לא תקין) |
|---|---|
a |
div p |
iframe.special[src^='http'] |
p>span.highlight |
ns|* |
p + ol |
#abcd:checked |
p::first-line |
תנאי CSS תואמים רק לרכיבים שמוצגים: אם רכיב שתואם לסלקטור שלכם הוא display:none או שאחד מרכיבי ההורה שלו הוא display:none, הוא לא גורם לתנאי להתאים. גם אם הרכיבים מעוצבים באמצעות visibility:hidden, ממוקמים מחוץ למסך או מוסתרים על ידי רכיבים אחרים, הם עדיין יכולים להתאים לתנאי.
התאמת מצב הסימניות
התנאי PageStateMatcher.isBookmarked מאפשר התאמה של מצב הסימנייה של כתובת ה-URL הנוכחית בפרופיל של המשתמש. כדי להשתמש בתנאי הזה, צריך להצהיר על ההרשאה bookmarks במניפסט של התוסף.
סוגים
ImageDataType
מידע נוסף זמין בכתובת https://developer.mozilla.org/en-US/docs/Web/API/ImageData.
סוג
ImageData
PageStateMatcher
התאמה למצב של דף אינטרנט על סמך קריטריונים שונים.
מאפיינים
-
constructor
void
הפונקציה
constructorנראית כך:(arg: PageStateMatcher) => {...}
-
arg
-
החזרות
-
-
css
string[] אופציונלי
התאמה מתרחשת אם כל הסלקטורים ב-CSS במערך תואמים לאלמנטים שמוצגים במסגרת עם אותו מקור כמו המסגרת הראשית של הדף. כדי להאיץ את ההתאמה, כל הסלקטורים במערך הזה חייבים להיות סלקטורים מורכבים. הערה: אם תציינו מאות סלקטורים ב-CSS או סלקטורים ב-CSS שתואמים למאות פעמים בדף, זה עלול להאט את האתרים.
-
isBookmarked
בוליאני אופציונלי
Chrome 45 ואילךהתאמה אם מצב הסימנייה של הדף שווה לערך שצוין. נדרשת הרשאת סימניות.
-
pageUrl
UrlFilter אופציונלי
יש התאמה אם התנאים של
UrlFilterמתקיימים בכתובת ה-URL ברמה העליונה של הדף.
RequestContentScript
פעולת אירוע הצהרתית שמזריקה סקריפט תוכן.
אזהרה: הפעולה הזו עדיין ניסיונית ואין בה תמיכה בגרסאות יציבות של Chrome.
מאפיינים
-
constructor
void
הפונקציה
constructorנראית כך:(arg: RequestContentScript) => {...}
-
החזרות
-
-
allFrames
בוליאני אופציונלי
אם סקריפט התוכן פועל בכל המסגרות של הדף התואם, או רק במסגרת העליונה. ברירת המחדל היא
false. -
css
string[] אופציונלי
שמות של קובצי CSS שיוזרקו כחלק מסקריפט התוכן.
-
js
string[] אופציונלי
שמות של קובצי JavaScript שיוזרקו כחלק מסקריפט התוכן.
-
matchAboutBlank
בוליאני אופציונלי
אם להוסיף את סקריפט התוכן ב-
about:blankוב-about:srcdoc. ברירת המחדל היאfalse.
SetIcon
פעולת אירוע הצהרתית שמגדירה את סמל הריבוע n-dip עבור פעולת הדף או פעולת הדפדפן של התוסף, כל עוד התנאים המתאימים מתקיימים. אפשר להשתמש בפעולה הזו בלי הרשאות מארח, אבל לתוסף צריכה להיות פעולה בדף או בדפדפן.
צריך לציין רק אחד מהשדות: imageData או path. שניהם מילונים שממפים מספר פיקסלים לייצוג של תמונה. ייצוג התמונה ב-imageData הוא אובייקט ImageData, לדוגמה מרכיב canvas, ואילו ייצוג התמונה ב-path הוא הנתיב לקובץ תמונה שקשור למניפסט של התוסף. אם scale פיקסלים במסך מתאימים לפיקסל שאינו תלוי במכשיר, המערכת משתמשת בסמל scale * n. אם חסר קנה מידה כזה, המערכת משנה את הגודל של תמונה אחרת לגודל הנדרש.
מאפיינים
-
constructor
void
הפונקציה
constructorנראית כך:(arg: SetIcon) => {...}
-
arg
-
החזרות
-
-
imageData
ImageData | object אופציונלי
אובייקט
ImageDataאו מילון {size -> ImageData} שמייצג סמל להגדרה. אם הסמל מוגדר כמילון, התמונה שבה נעשה שימוש נבחרת בהתאם לצפיפות הפיקסלים של המסך. אם מספר פיקסלי התמונה שמתאימים ליחידת שטח אחת במסך שווה ל-scale, נבחרת תמונה בגודלscale * n, כאשר n הוא גודל הסמל בממשק המשתמש. צריך לציין תמונה אחת לפחות. שימו לב ש-details.imageData = fooשווה ל-details.imageData = {'16': foo}.
ShowAction
פעולת אירוע הצהרתית שמגדירה את הפעולה של סרגל הכלים של התוסף למצב מופעל, כל עוד התנאים התואמים מתקיימים. אפשר להשתמש בפעולה הזו בלי הרשאות מארח. אם לתוסף יש את ההרשאה activeTab, לחיצה על פעולת הדף מעניקה גישה לכרטיסייה הפעילה.
בדפים שבהם התנאים לא מתקיימים, הפעולה בסרגל הכלים של התוסף תהיה בגווני אפור, ולחיצה עליה תפתח את תפריט ההקשר במקום להפעיל את הפעולה.
מאפיינים
-
constructor
void
הפונקציה
constructorנראית כך:(arg: ShowAction) => {...}
-
arg
-
החזרות
-
ShowPageAction
צריך להשתמש ב-declarativeContent.ShowAction.
פעולת אירוע הצהרתית שמגדירה את פעולת הדף של התוסף למצב מופעל בזמן שהתנאים התואמים מתקיימים. אפשר להשתמש בפעולה הזו בלי הרשאות מארח, אבל לתוסף חייבת להיות פעולת דף. אם לתוסף יש את ההרשאה activeTab, לחיצה על פעולת הדף מעניקה גישה לכרטיסייה הפעילה.
בדפים שבהם התנאים לא מתקיימים, הפעולה בסרגל הכלים של התוסף תהיה בגווני אפור, ולחיצה עליה תפתח את תפריט ההקשר במקום להפעיל את הפעולה.
מאפיינים
-
constructor
void
הפונקציה
constructorנראית כך:(arg: ShowPageAction) => {...}
-
arg
-
החזרות
-
אירועים
onPageChanged
מספק את Declarative Event API שמורכב מ-addRules, removeRules ו-getRules.