Browserextensies ontwikkelen (Chrome en Edge) · Les

De DOM van webpagina's aanpassen

Bewerk het Document Object Model (DOM) van webpagina's door elementen en hun attributen toe te voegen, te verwijderen of te wijzigen.

Les 2 van 411 stappen

De DOM van webpagina's aanpassen is een gratis Browserextensies ontwikkelen (Chrome en Edge)-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Browserextensies ontwikkelen (Chrome en Edge). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Browserextensies ontwikkelen (Chrome en Edge) bevat in totaal 4 lessen.

Inleiding tot DOM-aanpassingen

Welkom bij het aanpassen van de inhoud van webpagina's! In deze les leer je hoe je met je extensie kunt veranderen wat gebruikers op een website zien.

We gaan dieper in op het Document Object Model (DOM), een soort boomstructuur die alle elementen op een webpagina voorstelt. De contentscripts van je extensie kunnen met deze boomstructuur werken.

Elementen op een pagina vinden

Voordat je een element kunt wijzigen, moet je het vinden! JavaScript biedt verschillende manieren om elementen in de DOM te selecteren.

  • document.querySelector(): Vindt het eerste element dat overeenkomt met een CSS-selector.
  • document.querySelectorAll(): Vindt alle elementen die overeenkomen met een CSS-selector.
  • document.getElementById(): Vindt een element aan de hand van de unieke ID.

Dit zijn je belangrijkste hulpmiddelen om specifieke onderdelen van een webpagina te selecteren.

Elementen openen: demonstratie

Laten we bekijken hoe je een element ophaalt. Stel je voor dat een webpagina een alinea met de ID 'myParagraph' en meerdere andere alinea's bevat.

Probeer deze code uit te voeren:

// This code would run in your content script.
// It assumes a page with a <p id="myParagraph"> and other <p> tags.

const specificParagraph = document.getElementById('myParagraph');
const allParagraphs = document.querySelectorAll('p');

if (specificParagraph) {
  console.log('Found specific paragraph:', specificParagraph.textContent);
}

console.log('Total paragraphs on page:', allParagraphs.length);

// For demonstration, we'll change a dummy element if it exists.
// In a real scenario, this would modify the live page.
const dummyDiv = document.createElement('div');
dummyDiv.id = 'coddykit-output';
document.body.append(dummyDiv);

if (specificParagraph) {
  dummyDiv.textContent = `Found by ID: ${specificParagraph.textContent}. Total Ps: ${allParagraphs.length}`;
} else {
  dummyDiv.textContent = `No #myParagraph found. Total Ps: ${allParagraphs.length}`;
}

Tekstinhoud bijwerken

Zodra je een element hebt, is het eenvoudig om de tekst ervan te wijzigen. Je kunt de eigenschap textContent gebruiken.

textContent stelt de tekstinhoud van de opgegeven node en al diens afstammelingen in of geeft deze terug. Deze eigenschap heeft over het algemeen de voorkeur boven innerText vanwege de prestaties en beveiliging.

Tekst wijzigen: demonstratie

Laten we de tekst van de eerste kop op een pagina bijwerken. Dit is een veelvoorkomende taak voor extensies die informatie of waarschuwingen willen toevoegen.

Wat denk je dat dit met de hoofdkop van de pagina zal doen?

// This code would run in your content script.
// It assumes the page has at least one <h1> element.

const mainHeading = document.querySelector('h1');

if (mainHeading) {
  mainHeading.textContent = '🥳 This Heading Was Modified by CoddyKit!';
  mainHeading.style.color = 'blue'; // Add some style for visibility
} else {
  // If no h1, create one to show the effect
  const newHeading = document.createElement('h1');
  newHeading.textContent = '🥳 New Heading from CoddyKit!';
  newHeading.style.color = 'blue';
  document.body.prepend(newHeading);
}

Attributen van elementen wijzigen

Elementen hebben vaak attributen zoals src voor afbeeldingen, href voor koppelingen of class voor opmaak. Ook deze kun je wijzigen!

  • element.setAttribute(name, value): Voegt een attribuut toe of werkt het bij.
  • element.removeAttribute(name): Verwijdert een attribuut.
  • element.classList.add(className): Voegt een CSS-klasse toe.
  • element.classList.remove(className): Verwijdert een CSS-klasse.

Attributen en klassen: demonstratie

Laten we de bron van een afbeelding wijzigen en een klasse aan een alinea toevoegen. Stel je voor dat je een tijdelijke afbeelding wilt vervangen of bepaalde tekst wilt markeren.

Probeer dit voorbeeld uit te voeren:

// This code would run in your content script.
// It assumes a page has an <img> and a <p> element.

const firstImage = document.querySelector('img');
const firstParagraph = document.querySelector('p');

if (firstImage) {
  firstImage.setAttribute('src', 'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png');
  firstImage.setAttribute('alt', 'CoddyKit Replaced Image');
  firstImage.style.border = '2px solid green'; // Make changes visible
}

if (firstParagraph) {
  firstParagraph.classList.add('coddykit-highlight');
  // Add some inline style for the added class for visibility
  firstParagraph.style.backgroundColor = '#ffff0050'; // Light yellow tint
  firstParagraph.style.padding = '5px';
  firstParagraph.textContent += ' (Highlighted by CoddyKit!)';
} else {
  const newP = document.createElement('p');
  newP.textContent = 'This is a new paragraph with a highlight!';
  newP.classList.add('coddykit-highlight');
  newP.style.backgroundColor = '#ffff0050';
  newP.style.padding = '5px';
  document.body.append(newP);
}

Nieuwe elementen maken en toevoegen

Extensies kunnen ook volledig nieuwe inhoud aan een pagina toevoegen! Zo kun je aangepaste knoppen, zijbalken of meldingen toevoegen.

  • document.createElement(tagName): Maakt een nieuw elementknooppunt.
  • parentNode.appendChild(childNode): Voegt een knooppunt toe als laatste kind van een ouderknooppunt.
  • parentNode.prepend(childNode): Voegt een knooppunt toe als eerste kind van een ouderknooppunt.
  • parentNode.insertBefore(newNode, referenceNode): Voegt een knooppunt vóór een referentieknooppunt in.

Elementen injecteren: demonstratie

Laten we een nieuw div-element maken en dit helemaal bovenaan de body van de webpagina toevoegen.

Dit laat zien hoe een extensie naadloos nieuwe UI-elementen kan integreren.

// This code would run in your content script.

const newDiv = document.createElement('div');
newDiv.textContent = '👋 Hello from your CoddyKit Extension!';
newDiv.style.backgroundColor = '#ADD8E6'; // Light blue background
newDiv.style.padding = '10px';
newDiv.style.textAlign = 'center';
newDiv.style.borderBottom = '1px solid #87CEEB';
newDiv.style.position = 'sticky';
newDiv.style.top = '0';
newDiv.style.width = '100%';
newDiv.style.zIndex = '9999';

document.body.prepend(newDiv); // Add to the top of the body

// You can also remove elements:
// const elementToRemove = document.querySelector('.some-ad-class');
// if (elementToRemove) {
//   elementToRemove.remove();
// }

Snelle controle: DOM-acties

Welke van de volgende JavaScript-methoden kun je gebruiken om elementen op een webpagina toe te voegen, te verwijderen of te wijzigen?

Samenvatting: webpagina's wijzigen

Goed gedaan! Je hebt de belangrijkste technieken geleerd om met content scripts de structuur en inhoud van een webpagina te gebruiken en te wijzigen.

  • Je kunt elementen vinden met querySelector, querySelectorAll en getElementById.
  • Je kunt tekst wijzigen met textContent.
  • Je kunt attributen en klassen aanpassen met setAttribute, removeAttribute, classList.add en classList.remove.
  • Je kunt nieuwe elementen maken en invoegen met createElement en methoden zoals appendChild of prepend.
  • Je kunt elementen verwijderen met element.remove().

Met deze krachtige hulpmiddelen kun je de browse-ervaring van de gebruiker echt aanpassen. Vervolgens bekijken we hoe je met de gegevens op deze pagina's kunt werken!

Gratis beginnen

Leer JavaScript met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “De DOM van webpagina's aanpassen” gratis?

Ja — de volledige tekst van “De DOM van webpagina's aanpassen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Browserextensies ontwikkelen (Chrome en Edge) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Browserextensies ontwikkelen (Chrome en Edge) bevat in totaal 4 lessen.

Wat leer ik in “De DOM van webpagina's aanpassen”?

Bewerk het Document Object Model (DOM) van webpagina's door elementen en hun attributen toe te voegen, te verwijderen of te wijzigen. Je oefent met Browserextensies ontwikkelen (Chrome en Edge) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Browserextensies ontwikkelen (Chrome en Edge) te beginnen?

Ervaring vooraf is niet nodig. Browserextensies ontwikkelen (Chrome en Edge) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “De DOM van webpagina's aanpassen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Browserextensies ontwikkelen (Chrome en Edge)?

Ja. Elke les over Browserextensies ontwikkelen (Chrome en Edge) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Contentscripts injecteren
  2. De DOM van webpagina's aanpassen
  3. Interactie met gegevens op webpagina's
  4. CSS injecteren en geïsoleerde styling
← Terug naar Browserextensies ontwikkelen (Chrome en Edge)