Hoppa till innehåll
SilktideHjälp

Anpassad JavaScript

Anpassad är en kontroll som du själv skapar. Du skriver ett JavaScript-utdrag, Silktide kör det i webbläsaren på varje sida som testas, och det som utdraget rapporterar blir resultat på dessa sidor.

Det gör det möjligt att testa vad som helst som är viktigt för din organisation, men som Silktide inte testar direkt: en intern stilregel, ett obligatoriskt spårningsutdrag, en föråldrad komponent som inte längre ska visas och så vidare.

Så åtgärdar du det

Resultaten från den här kontrollen betyder vad ditt utdrag bestämmer att de ska betyda, så det är du som definierar åtgärden. Skriv message för varje resultat så att en kollega som aldrig har sett utdraget förstår vad som ska ändras.

Så testar Silktide detta

  1. Ditt utdrag körs i webbläsaren på varje sida som Silktide testar, efter att sidan har lästs in, som kroppen i en async JavaScript-funktion – så du kan använda await och return direkt.
  2. Det som ditt utdrag returnerar omvandlas till resultat:
    • Returnera en array med objekt för att rapportera flera resultat, där varje resultat markerar ett element på sidan:
// Rapportera varje bild som är över 500 px bred som ett resultat
const wide = [...document.querySelectorAll('img')].filter(img => img.width > 500);
return wide.map(img => ({
  selector: 'img[src="' + img.getAttribute('src') + '"]',
  text: img.getAttribute('src'),
  severity: 'medium',
  message: 'Bilden är bredare än 500 px',
}));
  • Varje objekt kan innehålla selector (en CSS-selektor för elementet som ska markeras), text (det som ska visas för resultatet), severity (low, medium eller high) och message som förklarar problemet.
  • Returnera en vanlig sträng för att rapportera ett resultat med låg allvarlighetsgrad för sidan.
  • Returnera en tom array, eller ingenting, för att rapportera att sidan är felfri.
  1. Om utdraget utlöser ett fel eller returnerar något som inte stöds, rapporterar kontrollen felet på sidan så att du kan felsöka utdraget.

Eftersom utdraget körs i webbläsaren när sidan hämtas börjar ändringar i utdraget gälla nästa gång sidorna testas, inte direkt.

Felsökning

Mitt utdrag fungerar i webbläsarens konsol men inte här

Utdraget utgör kroppen i en funktion, så satser som return förväntas finnas på toppnivå. Kontrollera att utdraget returnerar sina resultat i stället för att logga dem med console.log, som inte samlas in.

Resultaten markerar inte rätt element

Den selector du returnerar måste matcha elementet på sidan unikt när sidan testades. Använd helst stabila attribut (id:n och data-*-attribut) i stället för positionsselektorer som :nth-child, vilka slutar fungera när innehållet förändras.

Läs mer

Senast uppdaterad

Var den här sidan hjälpsam?