Webudvidelser

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 21. april 2020; checks kræver 4 redigeringer .

WebExtensions  er en browserudvidelsesteknologi , der understøttes af de fleste populære browsere. Ved hjælp af WebExtensions kan du oprette udvidelser, der kan ændre browserens brugergrænseflade en smule, ændre indholdet af websider og ændre browserens netværksanmodninger. WebExtensions er bygget ved hjælp af teknologier som HTML , CSS , JavaScript og JSON .

Udvidelsesstruktur

WebExtensions-udvidelsen er et zip-arkiv med en næsten vilkårlig intern struktur af indlejrede mapper og filer. Et af de få krav med hensyn til struktur er tilstedeværelsen af ​​manifest.json - en JSON -fil, der etablerer protokollen for interaktion mellem browseren, browserudvidelsen og brugeren. Hvad manifestet kan indeholde:

Arkitektoniske træk

Hver udvidelsesbaggrundsside, indstillingsside eller rullemenuside kører i en separat proces med sin egen kontekst. Interaktion mellem individuelle scripts af samme udvidelse, mellem forskellige udvidelser, såvel som mellem udvidelsen og browseren, udføres ved hjælp af et navngivet meddelelsessystem. De fleste anmodninger fra udvidelsen til browseren, der kan forårsage forsinkelse (for eksempel læsning og skrivning af forskellige data), implementeres ved hjælp af asynkrone API'er .

Support på tværs af browsere

Fra november 2017 understøttes udvidelser oprettet med WebExtension af alle større browsere:

Internationaliseringsstøtte

WebExtensions-udvidelsen kan understøtte flere sprog ved hjælp af det indbyggede i18n.js JavaScript -bibliotek. Filer, der svarer til forskellige lokaliteter, er i JSON-format . Ved hjælp af speciel syntaks kan nogle dele af manifest.json-filen (såsom navnet og beskrivelsen af ​​udvidelsen) automatisk bindes til strenge fra deres respektive lokaliteter, men det er primært udvidelsesudviklerens ansvar at binde forskellige elementer af udvidelsens brugergrænseflade til lokaliserede strenge.

Analoger

I lighed med WebExtensions-teknologien er XUL , som blev brugt i Mozilla Firefox op til version 57, og Apples proprietære teknologi , som bruges til at oprette udvidelser i Safari -browseren .

Kritik

WebExtensions-teknologien er udviklet som cross-browser, men i praksis varierer niveauet af understøttelse af forskellige API'er fra browser til browser. Afhængigt af hvilke funktioner udvidelsen implementerer, kan det vise sig, at for at udgive udvidelsen i mapperne i forskellige browsere, bliver du nødt til at oprette forskellige arkiver. Browserudviklere forsøger at løse inkompatibilitetsproblemet med migreringsvejledninger, hvilket kun gør det sværere at udvikle udvidelser.

Derudover kritiserer browserudviklere WebExtensions ekstremt svage muligheder sammenlignet med XUL  - for eksempel tillader WebExtensions dig ikke at oprette paneler, der er uafhængige af de besøgte ressourcer, hvilket tvinger udviklere til at trænge direkte ind i koden på de sider, de ser eller begrænse sig til udvidelsesikonets dårlige muligheder. Et slående eksempel på en udvidelse, der blev forhindret i at flytte til WebExtensions, er en widget, der viser de seneste nyheder fra RSS-feeds i en ticker.

Eksempler på udvidelser

Eksempler på browserudvidelser, der er oprettet ved hjælp af WebExtensions-teknologi og fungerer i tre eller flere browsere:

Links