Utvikling av nettleserutvidelser (Chrome og Edge) · leksjon

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.

Leksjon 4 av 413 trinn

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)) + 1

Prioriteter 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 priority ved konflikter
  • Bruk øktregler for midlertidig tilstand
  • Feilsøk med onRuleMatchedDebug og getDynamicRules
  • Respekter grensene for antall regler

Regler under kjøring lar utvidelsen tilpasse seg uten at De må levere en oppdatering.

Gratis å komme i gang

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

  1. Blokkere nettverksforespørsler
  2. Endre forespørselshoder
  3. Omdirigere og omskrive URL-er
  4. Dynamiske regler og feilsøking av declarativeNetRequest
← Tilbake til Utvikling av nettleserutvidelser (Chrome og Edge)