Utveckling av webbläsartillägg (Chrome och Edge) · Lektion

Dynamiska regler och felsökning av declarativeNetRequest

Lägg till och uppdatera regler under körning, hantera regel-ID:n och prioriteter och observera matchade begäranden vid felsökning.

Lektion 4 av 413 steg

Dynamiska regler och felsökning av declarativeNetRequest är en gratis lektion i Utveckling av webbläsartillägg (Chrome och Edge) på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Utveckling av webbläsartillägg (Chrome och Edge), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Utveckling av webbläsartillägg (Chrome och Edge) innehåller totalt 4 lektioner.

Statiska kontra dynamiska regler

declarativeNetRequest stöder två typer av regler. Statiska regler levereras i JSON-filer i manifestet. Dynamiska regler läggs till under körning och finns kvar efter omstarter.

Dynamiska regler låter Er anpassa tillägget efter användarens val utan en uppdatering.

Deklarera behörigheten

Ni behöver behörigheten declarativeNetRequest. För dynamiska regler under körning är det den enda behörighet Ni behöver.

{
  "permissions": ["declarativeNetRequest"]
}

En regels uppbyggnad

Varje regel har ett id, en priority, en action och ett condition. Villkoret avgör vilka begäranden som matchar.

{
  "id": 1,
  "priority": 1,
  "action": { "type": "block" },
  "condition": { "urlFilter": "ads.example.com" }
}

Lägga till dynamiska regler

Använd updateDynamicRules för att lägga till regler. Skicka med dem i arrayen addRules.

chrome.declarativeNetRequest.updateDynamicRules({
  addRules: [{
    id: 1, priority: 1,
    action: { type: 'block' },
    condition: { urlFilter: 'tracker.com', resourceTypes: ['script'] }
  }]
})

Ta bort regler efter ID

Samma anrop tar bort regler genom att deras ID:n anges i removeRuleIds. Tillägg och borttagningar kan ske samtidigt.

chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: [1]
})

Unika regel-ID:n

Varje dynamisk regel behöver ett unikt numeriskt id. Om Ni återanvänder ett befintligt ID utan att först ta bort det uppstår ett fel.

const existing = await chrome.declarativeNetRequest.getDynamicRules()
const nextId = Math.max(0, ...existing.map(r => r.id)) + 1

Prioriteter löser konflikter

När flera regler matchar avgör priority vilken som vinner. Högre prioritet går före; allow-regler kan åsidosätta block-regler på samma nivå.

{ "id": 2, "priority": 2, "action": { "type": "allow" }, "condition": { "urlFilter": "safe.com" } }

Sessionsregler

Om Ni vill ha regler som försvinner när webbläsaren stängs använder Ni updateSessionRules i stället. De sparas aldrig på disk.

chrome.declarativeNetRequest.updateSessionRules({
  addRules: [tempRule]
})

Observera matchande begäranden

För felsökning aktiverar Ni feedback-behörigheten och lyssnar på onRuleMatchedDebug för att se vilken regel som utlöstes för varje begäran.

chrome.declarativeNetRequest.onRuleMatchedDebug.addListener((info) => {
  console.log('Matched rule ' + info.rule.ruleId)
})

Granska aktuella regler

Anropa getDynamicRules för att lista allt som för närvarande är aktivt. Det är viktigt när en regel inte fungerar som den ska och Ni behöver bekräfta vad som är installerat.

const rules = await chrome.declarativeNetRequest.getDynamicRules()
console.log(rules.length + ' active rules')

Håll Er inom gränserna

Det finns en gräns för antalet dynamiska regler. Granska och ta bort gamla regler i stället för att samla på Er fler, och gruppera villkor när det är möjligt för att arbeta effektivt.

Snabbtest

Testa Era kunskaper om dynamiska regler.

Sammanfattning

Ni har lärt Er om dynamiska begäranderegler:

  • Lägg till och ta bort med updateDynamicRules
  • Håll ID:n unika och använd priority för konflikter
  • Använd sessionsregler för tillfälligt tillstånd
  • Felsök med onRuleMatchedDebug och getDynamicRules
  • Respektera gränsen för antalet regler

Regler under körning låter Er anpassa tillägget utan att leverera en uppdatering.

Gratis att börja

Lär dig JavaScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Dynamiska regler och felsökning av declarativeNetRequest” gratis?

Ja – hela texten till ”Dynamiska regler och felsökning av declarativeNetRequest” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Utveckling av webbläsartillägg (Chrome och Edge), kan Ni uppgradera till CoddyKit PRO. Kursen i Utveckling av webbläsartillägg (Chrome och Edge) innehåller totalt 4 lektioner.

Vad lär jag mig i ”Dynamiska regler och felsökning av declarativeNetRequest”?

Lägg till och uppdatera regler under körning, hantera regel-ID:n och prioriteter och observera matchade begäranden vid felsökning. Ni övar på Utveckling av webbläsartillägg (Chrome och Edge) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Utveckling av webbläsartillägg (Chrome och Edge)?

Du behöver inga förkunskaper. Utbildningen i Utveckling av webbläsartillägg (Chrome och Edge) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Dynamiska regler och felsökning av declarativeNetRequest”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Utveckling av webbläsartillägg (Chrome och Edge)-lektionen?

Ja. Varje Utveckling av webbläsartillägg (Chrome och Edge)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Blockera nätverksförfrågningar
  2. Ändra förfrågningsheaders
  3. Omdirigera och skriva om URL:er
  4. Dynamiska regler och felsökning av declarativeNetRequest
← Tillbaka till Utveckling av webbläsartillägg (Chrome och Edge)