Dynamiske regler og feilsøking av declarativeNetRequest
Legg til og oppdater regler under kjøring, administrer regel-ID-er og prioriteter, og observer samsvarende forespørsler for feilsøking.
Dynamiske regler og feilsøking av declarativeNetRequest er en gratis leksjon i Utvikling av nettleserutvidelser (Chrome og Edge) på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Utvikling av nettleserutvidelser (Chrome og Edge), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Utvikling av nettleserutvidelser (Chrome og Edge) inneholder totalt 4 leksjoner.
Statiske og dynamiske regler
declarativeNetRequest støtter to regeltyper. Statiske regler leveres i JSON-filer i manifestet. Dynamiske regler legges til under kjøring og beholdes etter omstarter.
Dynamiske regler lar utvidelsen tilpasse seg brukerens valg uten en oppdatering.
Deklarere tillatelsen
De trenger tillatelsen declarativeNetRequest. For dynamiske regler under kjøring er det alt De trenger.
{
"permissions": ["declarativeNetRequest"]
}En regels oppbygning
Hver regel har en id, en priority, en action og en condition. Betingelsen avgjør hvilke forespørsler som samsvarer.
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": { "urlFilter": "ads.example.com" }
}Legge til dynamiske regler
Bruk updateDynamicRules for å legge til regler. Send dem inn i matrisen addRules.
chrome.declarativeNetRequest.updateDynamicRules({
addRules: [{
id: 1, priority: 1,
action: { type: 'block' },
condition: { urlFilter: 'tracker.com', resourceTypes: ['script'] }
}]
})Fjerne regler etter ID
Det samme kallet fjerner regler ved å liste ID-ene deres i removeRuleIds. Tillegging og fjerning kan skje samtidig.
chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: [1]
})Unike regel-ID-er
Hver dynamiske regel trenger en unik numerisk id. Hvis De bruker en eksisterende ID på nytt uten å fjerne den først, oppstår det en feil.
const existing = await chrome.declarativeNetRequest.getDynamicRules()
const nextId = Math.max(0, ...existing.map(r => r.id)) + 1Prioriteter løser konflikter
Når flere regler samsvarer, avgjør priority hvilken som vinner. Høyere prioritet går foran; tillat-regler kan overstyre blokkeringsregler på samme nivå.
{ "id": 2, "priority": 2, "action": { "type": "allow" }, "condition": { "urlFilter": "safe.com" } }Øktregler
Hvis De ønsker regler som forsvinner når nettleseren lukkes, kan De bruke updateSessionRules i stedet. De lagres aldri på disken.
chrome.declarativeNetRequest.updateSessionRules({
addRules: [tempRule]
})Følge med på samsvarende forespørsler
For feilsøking kan De aktivere feedback-tillatelsen og lytte til onRuleMatchedDebug for å se hvilken regel som ble utløst for hver forespørsel.
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener((info) => {
console.log('Matched rule ' + info.rule.ruleId)
})Inspisere gjeldende regler
Kall getDynamicRules for å liste alt som er aktivt nå. Dette er viktig når en regel oppfører seg feil og De må bekrefte hva som er installert.
const rules = await chrome.declarativeNetRequest.getDynamicRules()
console.log(rules.length + ' active rules')Holde seg innenfor grensene
Det finnes en grense for antallet dynamiske regler. Kontroller og fjern foreldede regler i stedet for å samle på flere, og grupper betingelser der det er mulig for å arbeide effektivt.
Kort kontroll
Test kunnskapene Deres om dynamiske regler.
Oppsummering
De har lært om dynamiske forespørselsregler:
- Legg til og fjern med
updateDynamicRules - Hold ID-ene unike, og bruk
priorityved konflikter - Bruk øktregler for midlertidig tilstand
- Feilsøk med
onRuleMatchedDebugoggetDynamicRules - Respekter grensene for antall regler
Regler under kjøring lar utvidelsen tilpasse seg uten at De må levere en oppdatering.
Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Dynamiske regler og feilsøking av declarativeNetRequest» gratis?
Ja – hele teksten i «Dynamiske regler og feilsøking av declarativeNetRequest» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Utvikling av nettleserutvidelser (Chrome og Edge)-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Utvikling av nettleserutvidelser (Chrome og Edge) inneholder totalt 4 leksjoner.
Hva lærer jeg i «Dynamiske regler og feilsøking av declarativeNetRequest»?
Legg til og oppdater regler under kjøring, administrer regel-ID-er og prioriteter, og observer samsvarende forespørsler for feilsøking. Du øver på Utvikling av nettleserutvidelser (Chrome og Edge) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Utvikling av nettleserutvidelser (Chrome og Edge)?
Ingen tidligere erfaring er nødvendig. Utvikling av nettleserutvidelser (Chrome og Edge) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Dynamiske regler og feilsøking av declarativeNetRequest»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Utvikling av nettleserutvidelser (Chrome og Edge)-leksjonen?
Ja. Alle Utvikling av nettleserutvidelser (Chrome og Edge)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Blokkere nettverksforespørsler
- Endre forespørselshoder
- Omdirigere og omskrive URL-er
- Dynamiske regler og feilsøking av declarativeNetRequest