תאריך הרענון: 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, ואחריו התנאים 'מכיל', 'שווה ל', 'מתחיל ב' או 'מסתיים ב'. בטבלה הבאה מופיעות כמה דוגמאות:
| קריטריונים | התאמות |
|---|---|
{ hostSuffix: 'google.com' } |
כל כתובות ה-URL של Google |
{ pathPrefix: '/docs/extensions' } |
כתובות URL של מסמכי תוספים |
{ urlContains: 'developer.chrome.com' } |
כל כתובות ה-URL של מסמכי התיעוד למפתחים של Chrome |
כל הקריטריונים הם תלויי-רישיות. רשימה מלאה של הקריטריונים מופיעה במאמר UrlFilter.
התאמה של שירות CSS
התנאים של PageStateMatcher.css חייבים להיות סלקטורים מורכבים, כלומר אי אפשר לכלול קומבינטורים כמו רווח או > בסלקטורים. כך Chrome יכול להתאים את הסלקטורים בצורה יעילה יותר.
| בוררים מורכבים (OK) | בוררים מורכבים (לא תקינים) |
|---|---|
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 הנוכחית בפרופיל המשתמש. כדי להשתמש בתנאי הזה, צריך להצהיר על ההרשאה 'סימניות' במניפסט התוסף.
סוגים
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
boolean אופציונלי
Chrome 45 ואילךהתנאי מתקיים אם המצב של הדף בסימנייה שווה לערך שצוין. נדרשת הרשאת סימניות.
-
pageUrl
UrlFilter אופציונלי
התאמה מתבצעת אם התנאים של
UrlFilterמתקיימים לגבי כתובת ה-URL ברמה העליונה של הדף.
RequestContentScript
פעולת אירוע הצהרתית שמזריקה סקריפט תוכן.
אזהרה: הפעולה הזו עדיין ניסיונית ואין לה תמיכה בגרסאות יציבות של Chrome.
מאפיינים
-
constructor
void
הפונקציה
constructorנראית כך:(arg: RequestContentScript) => {...}
-
החזרות
-
-
allFrames
boolean אופציונלי
האם סקריפט התוכן פועל בכל המסגרות של הדף התואם, או רק במסגרת העליונה. ברירת המחדל היא
false. -
css
string[] אופציונלי
שמות של קובצי CSS שיוזרקו כחלק מסקריפט התוכן.
-
js
string[] אופציונלי
שמות של קובצי JavaScript שיוחדרו כחלק מסקריפט התוכן.
-
matchAboutBlank
boolean אופציונלי
האם להוסיף את סקריפט התוכן ב-
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 optional
אובייקט
ImageDataאו מילון {גודל -> 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
ה-API מספק את Declarative Event API שכולל את addRules, removeRules ו-getRules.