refresh date: 2026-09-25 robots: noindex
Açıklama
chrome.events ad alanı, ilginç bir şey olduğunda sizi bilgilendirmek için etkinlik gönderen API'ler tarafından kullanılan yaygın türleri içerir.
Event, ilginç bir şey olduğunda bildirim almanızı sağlayan bir nesnedir. Bir alarmın süresi dolduğunda bildirim almak için chrome.alarms.onAlarm etkinliğini kullanma örneği:
chrome.alarms.onAlarm.addListener(function(alarm) {
appendToLog('alarms.onAlarm --'
+ ' name: ' + alarm.name
+ ' scheduledTime: ' + alarm.scheduledTime);
});
Örnekte gösterildiği gibi, addListener() kullanarak bildirim için kaydolursunuz. addListener() bağımsız değişkeni her zaman etkinliği işlemek için tanımladığınız bir işlevdir ancak işlevin parametreleri, işlediğiniz etkinliğe bağlıdır. alarms.onAlarm ile ilgili belgelere baktığınızda işlevin tek bir parametresi olduğunu görebilirsiniz: Süresi dolan alarm hakkında ayrıntıları içeren bir alarms.Alarm nesnesi.
Etkinlikleri kullanan API'lere örnekler: alarms, i18n, identity, runtime. Çoğu chrome API'si bu şekilde çalışır.
Bildirime Dayalı Etkinlik İşleyiciler
Bildirim temelli etkinlik işleyiciler, bildirim temelli koşullar ve işlemlerden oluşan kurallar tanımlamanın bir yolunu sunar. Koşullar, JavaScript motoru yerine tarayıcıda değerlendirilir. Bu sayede gidiş dönüş gecikmeleri azalır ve çok yüksek verimlilik elde edilir.
Bildirimsel etkinlik işleyiciler, örneğin Bildirimsel Web İsteği API'si ve Declarative Content API'nde kullanılır. Bu sayfada, tüm bildirim temelli etkinlik işleyicilerin temel kavramları açıklanmaktadır.
Kurallar
En basit kural, bir veya daha fazla koşul ve bir veya daha fazla işlemden oluşur:
var rule = {
conditions: [ /* my conditions */ ],
actions: [ /* my actions */ ]
};
Koşullardan herhangi biri karşılanırsa tüm işlemler yürütülür.
Koşullar ve işlemlerin yanı sıra her kurala bir tanımlayıcı verebilirsiniz. Bu sayede, önceden kaydedilmiş kuralların kaydını iptal etmek kolaylaşır. Ayrıca kurallar arasında öncelikleri tanımlamak için bir öncelik de belirleyebilirsiniz. Öncelikler yalnızca kurallar birbiriyle çelişiyorsa veya belirli bir sırada yürütülmesi gerekiyorsa dikkate alınır. İşlemler, kurallarının önceliğine göre azalan sırada yürütülür.
var rule = {
id: "my rule", // optional, will be generated if not set.
priority: 100, // optional, defaults to 100.
conditions: [ /* my conditions */ ],
actions: [ /* my actions */ ]
};
Etkinlik nesneleri
Etkinlik nesneleri kuralları destekleyebilir. Bu etkinlik nesneleri, etkinlikler gerçekleştiğinde bir geri çağırma işlevi çağırmaz ancak kayıtlı herhangi bir kuralın en az bir karşılanan koşulu olup olmadığını test eder ve bu kuralla ilişkili işlemleri yürütür. Bildirim temelli API'yi destekleyen etkinlik nesnelerinin üç alakalı yöntemi vardır: events.Event.addRules, events.Event.removeRules ve events.Event.getRules.
Reklam kuralları ekleme
Reklam kuralları eklemek için etkinlik nesnesinin addRules() işlevini çağırın. İlk parametre olarak bir kural örnekleri dizisi ve tamamlandığında çağrılan bir geri çağırma işlevi alır.
var rule_list = [rule1, rule2, ...];
function addRules(rule_list, function callback(details) {...});
Kurallar başarıyla eklendiyse details parametresi, iletilen rule_list ile aynı sırada görünen eklenmiş kurallardan oluşan bir dizi içerir. Bu dizide, isteğe bağlı id ve priority parametreleri oluşturulan değerlerle doldurulur. Geçersiz bir koşul veya işlem içerdiği için geçersiz olan bir kural varsa kuralların hiçbiri eklenmez ve geri çağırma işlevi çağrıldığında runtime.lastError değişkeni ayarlanır. rule_list içindeki her kural, şu anda başka bir kural tarafından kullanılmayan benzersiz bir tanımlayıcı veya boş bir tanımlayıcı içermelidir.
Kuralları kaldırma
Kuralları kaldırmak için removeRules() işlevini çağırın. İlk parametre olarak isteğe bağlı bir kural tanımlayıcı dizisi ve ikinci parametre olarak bir geri çağırma işlevi kabul eder.
var rule_ids = ["id1", "id2", ...];
function removeRules(rule_ids, function callback() {...});
rule_ids, bir tanımlayıcı dizisiyse dizide listelenen tanımlayıcıları içeren tüm kurallar kaldırılır. rule_ids bilinmeyen bir tanımlayıcı listelerse bu tanımlayıcı sessizce yoksayılır. rule_ids, undefined ise bu uzantının kayıtlı tüm kuralları kaldırılır. Kurallar kaldırıldığında callback() işlevi çağrılır.
Kurallar alınıyor
Kayıtlı kuralların listesini almak için getRules() işlevini çağırın. removeRules ile aynı semantiğe sahip isteğe bağlı bir kural tanımlayıcı dizisi ve bir geri çağırma işlevi kabul eder.
var rule_ids = ["id1", "id2", ...];
function getRules(rule_ids, function callback(details) {...});
callback() işlevine iletilen details parametresi, doldurulmuş isteğe bağlı parametreler de dahil olmak üzere bir kural dizisini ifade eder.
Performans
Maksimum performans elde etmek için aşağıdaki yönergeleri göz önünde bulundurmanız gerekir.
Kuralları toplu olarak kaydetme ve kaydını iptal etme Her kayıttan veya kayıt iptalinden sonra Chrome'un dahili veri yapılarını güncellemesi gerekir. Bu güncelleme, yüksek miktarda kaynak tüketen bir işlemdir.
Şunu kullanmayın:
var rule1 = {...};
var rule2 = {...};
chrome.declarativeWebRequest.onRequest.addRules([rule1]);
chrome.declarativeWebRequest.onRequest.addRules([rule2]);
tercih:
var rule1 = {...};
var rule2 = {...};
chrome.declarativeWebRequest.onRequest.addRules([rule1, rule2]);
events.UrlFilter'da normal ifadeler yerine alt dize eşleştirmeyi tercih edin. Alt dizeye dayalı eşleştirme son derece hızlıdır.
Şunu kullanmayın:
var match = new chrome.declarativeWebRequest.RequestMatcher({
url: {urlMatches: "example.com/[^?]*foo" } });
tercih:
var match = new chrome.declarativeWebRequest.RequestMatcher({
url: {hostSuffix: "example.com", pathContains: "foo"} });
Aynı işlemleri paylaşan çok sayıda kural varsa kuralları tek bir kuralda birleştirin. Kurallar, tek bir koşul karşılanır karşılanmaz işlemlerini tetikler. Bu, eşleşmeyi hızlandırır ve yinelenen işlem grupları için bellek tüketimini azaltır.
Şunu kullanmayın:
var condition1 = new chrome.declarativeWebRequest.RequestMatcher({
url: { hostSuffix: 'example.com' } });
var condition2 = new chrome.declarativeWebRequest.RequestMatcher({
url: { hostSuffix: 'foobar.com' } });
var rule1 = { conditions: [condition1],
actions: [new chrome.declarativeWebRequest.CancelRequest()]};
var rule2 = { conditions: [condition2],
actions: [new chrome.declarativeWebRequest.CancelRequest()]};
chrome.declarativeWebRequest.onRequest.addRules([rule1, rule2]);
tercih:
var rule = { conditions: [condition1, condition2],
actions: [new chrome.declarativeWebRequest.CancelRequest()]};
chrome.declarativeWebRequest.onRequest.addRules([rule]);
Filtrelenmiş etkinlikler
Filtrelenmiş etkinlikler, dinleyicilerin ilgilendikleri etkinliklerin bir alt kümesini belirtmesine olanak tanıyan bir mekanizmadır. Filtre kullanan bir dinleyici, filtreyi geçemeyen etkinlikler için çağrılmaz. Bu sayede dinleme kodu daha açıklayıcı ve verimli olur. Hizmet çalışanının, ilgilenmediği etkinlikleri işlemek için uyandırılması gerekmez.
Filtrelenmiş etkinlikler, aşağıdaki gibi manuel filtreleme kodundan geçiş yapılmasına olanak tanır:
chrome.webNavigation.onCommitted.addListener(function(e) {
if (hasHostSuffix(e.url, 'google.com') ||
hasHostSuffix(e.url, 'google.com.au')) {
// ...
}
});
şuna dönüştürün:
chrome.webNavigation.onCommitted.addListener(function(e) {
// ...
}, {url: [{hostSuffix: 'google.com'},
{hostSuffix: 'google.com.au'}]});
Etkinlikler, ilgili etkinlik için anlamlı olan belirli filtreleri destekler. Bir etkinliğin desteklediği filtrelerin listesi, ilgili etkinliğin dokümanlarındaki "filtreler" bölümünde yer alır.
URL'leri eşleştirirken (yukarıdaki örnekte olduğu gibi) etkinlik filtreleri, şema ve bağlantı noktası eşleştirme hariç olmak üzere events.UrlFilter ile ifade edilebilen URL eşleştirme özelliklerini destekler.
Türler
Event
Chrome etkinliği için işleyici eklenmesine ve kaldırılmasına olanak tanıyan bir nesne.
Özellikler
-
addListener
geçersiz
Bir etkinliğe etkinlik işleyici geri çağırma işlevi kaydeder.
addListenerişlevi şu şekildedir:(callback: H) => {...}
-
callback
H
Bir etkinlik gerçekleştiğinde çağrılır. Bu işlevin parametreleri, etkinliğin türüne bağlıdır.
-
-
addRules
geçersiz
Etkinlikleri işlemek için kuralları kaydeder.
addRulesişlevi şu şekildedir:(rules: Rule<anyany>[], callback?: function) => {...}
-
getRules
geçersiz
Kayıtlı kuralları döndürür.
getRulesişlevi şu şekildedir:(ruleIdentifiers?: string[], callback: function) => {...}
-
ruleIdentifiers
string[] isteğe bağlı
Bir dizi iletilirse yalnızca bu dizide yer alan tanımlayıcılara sahip kurallar döndürülür.
-
callback
işlev
callbackparametresi şu şekilde görünür:(rules: Rule<anyany>[]) => void
-
kurallar
Kural<anyany>[]
Kayıtlı kurallarda isteğe bağlı parametreler değerlerle doldurulur.
-
-
-
hasListener
geçersiz
hasListenerişlevi şu şekildedir:(callback: H) => {...}
-
callback
H
Kayıt durumu test edilecek işleyici.
-
returns
boole
callback etkinliğe kayıtlıysa True değerini döndürür.
-
-
hasListeners
geçersiz
hasListenersişlevi şu şekildedir:() => {...}-
returns
boole
Etkinliğe kayıtlı etkinlik işleyiciler varsa doğru değerini alır.
-
-
removeListener
geçersiz
Bir etkinlikten etkinlik işleyici geri çağırma kaydını iptal eder.
removeListenerişlevi şu şekildedir:(callback: H) => {...}
-
callback
H
Kaydı iptal edilecek dinleyici.
-
-
removeRules
geçersiz
Kayıtlı kuralların kaydını iptal eder.
removeRulesişlevi şu şekildedir:(ruleIdentifiers?: string[], callback?: function) => {...}
-
ruleIdentifiers
string[] isteğe bağlı
Bir dizi iletilirse yalnızca bu dizide yer alan tanımlayıcılara sahip kuralların kaydı iptal edilir.
-
callback
function isteğe bağlı
callbackparametresi şu şekilde görünür:() => void
-
Rule
Etkinlikleri işlemek için kullanılan bildirim kuralının açıklaması.
Özellikler
-
işlemler
any[]
Koşullardan biri karşılanırsa tetiklenen işlemlerin listesi.
-
koşul
any[]
İşlemleri tetikleyebilecek koşulların listesi.
-
id
string isteğe bağlı
Bu kurala referans verilmesine olanak tanıyan isteğe bağlı tanımlayıcı.
-
önceliği
number isteğe bağlı
Bu kuralın isteğe bağlı önceliği. Varsayılan olarak 100 değerine ayarlanır.
-
etiketler
string[] isteğe bağlı
Etiketler, kurallara ek açıklama eklemek ve kural grupları üzerinde işlem yapmak için kullanılabilir.
UrlFilter
URL'leri çeşitli ölçütlere göre filtreler. Etkinlik filtreleme bölümüne bakın. Tüm ölçütler büyük/küçük harfe duyarlıdır.
Özellikler
-
cidrBlocks
string[] isteğe bağlı
Chrome 123 ve sonraki sürümlerURL'nin ana makine kısmı bir IP adresiyse ve dizide belirtilen CIDR bloklarından herhangi birinde yer alıyorsa eşleşir.
-
hostContains
string isteğe bağlı
URL'nin ana makine adı belirtilen bir dizeyi içeriyorsa eşleşir. Bir ana makine adı bileşeninin "foo" önekine sahip olup olmadığını test etmek için hostContains: ".foo" ifadesini kullanın. Ana makine adının başına örtük bir nokta eklendiğinden bu, "www.foobar.com" ve "foo.com" ile eşleşir. Benzer şekilde, hostContains bileşen son ekiyle ('foo.') ve bileşenlerle ('.foo.') tam eşleşme için kullanılabilir. Ana makine adının sonuna örtük nokta eklenmediğinden, son bileşenler için son ek ve tam eşleme, hostSuffix kullanılarak ayrı ayrı yapılmalıdır.
-
hostEquals
string isteğe bağlı
URL'nin ana makine adı belirtilen bir dizeye eşitse eşleşir.
-
hostPrefix
string isteğe bağlı
URL'nin ana makine adı belirtilen bir dizeyle başlıyorsa eşleşir.
-
hostSuffix
string isteğe bağlı
URL'nin ana makine adı belirtilen bir dizeyle bitiyorsa eşleşir.
-
originAndPathMatches
string isteğe bağlı
Sorgu segmenti ve parça tanımlayıcısı olmayan URL, belirtilen bir normal ifadeyle eşleşirse eşleşir. Bağlantı noktası numaraları, varsayılan bağlantı noktası numarasıyla eşleşiyorsa URL'den çıkarılır. Normal ifadeler RE2 söz dizimini kullanır.
-
pathContains
string isteğe bağlı
URL'nin yol segmenti belirtilen bir dizeyi içeriyorsa eşleşir.
-
pathEquals
string isteğe bağlı
URL'nin yol segmenti belirtilen bir dizeye eşitse eşleşir.
-
pathPrefix
string isteğe bağlı
URL'nin yol segmenti belirtilen bir dizeyle başlıyorsa eşleşir.
-
pathSuffix
string isteğe bağlı
URL'nin yol segmenti belirtilen bir dizeyle bitiyorsa eşleşir.
-
ports
(number | number[])[] isteğe bağlı
URL'nin bağlantı noktası, belirtilen bağlantı noktası listelerinden herhangi birinde yer alıyorsa eşleşir. Örneğin,
[80, 443, [1000, 1200]]80, 443 numaralı bağlantı noktalarındaki ve 1000-1200 aralığındaki tüm isteklerle eşleşir. -
queryContains
string isteğe bağlı
URL'nin sorgu segmenti belirtilen bir dizeyi içeriyorsa eşleşir.
-
queryEquals
string isteğe bağlı
URL'nin sorgu segmenti belirtilen bir dizeye eşitse eşleşir.
-
queryPrefix
string isteğe bağlı
URL'nin sorgu segmenti belirtilen dizeyle başlıyorsa eşleşir.
-
querySuffix
string isteğe bağlı
URL'nin sorgu segmenti belirtilen bir dizeyle bitiyorsa eşleşir.
-
şemalar
string[] isteğe bağlı
URL'nin şeması, dizide belirtilen şemalardan herhangi birine eşitse eşleşir.
-
urlContains
string isteğe bağlı
URL (parça tanımlayıcı olmadan) belirtilen bir dizeyi içeriyorsa eşleşir. Bağlantı noktası numaraları, varsayılan bağlantı noktası numarasıyla eşleşiyorsa URL'den çıkarılır.
-
urlEquals
string isteğe bağlı
URL (parça tanımlayıcı olmadan) belirtilen bir dizeye eşitse eşleşir. Bağlantı noktası numaraları, varsayılan bağlantı noktası numarasıyla eşleşiyorsa URL'den çıkarılır.
-
urlMatches
string isteğe bağlı
URL (parça tanımlayıcı olmadan) belirtilen bir normal ifadeyle eşleşiyorsa eşleşir. Bağlantı noktası numaraları, varsayılan bağlantı noktası numarasıyla eşleşiyorsa URL'den çıkarılır. Normal ifadeler RE2 söz dizimini kullanır.
-
urlPrefix
string isteğe bağlı
URL (parça tanımlayıcı olmadan) belirtilen bir dizeyle başlıyorsa eşleşir. Bağlantı noktası numaraları, varsayılan bağlantı noktası numarasıyla eşleşiyorsa URL'den çıkarılır.
-
urlSuffix
string isteğe bağlı
URL (parça tanımlayıcı olmadan) belirtilen bir dizeyle bitiyorsa eşleşir. Bağlantı noktası numaraları, varsayılan bağlantı noktası numarasıyla eşleşiyorsa URL'den çıkarılır.