Introduktion til handlingen Start JavaScript på webside i Genveje på Mac
Instrukserne på næsten alle websider er skrevet i JavaScript, som er et programmeringssprog, der skaber dynamiske effekter i webbrowsere, herunder animation, interaktive menuer, videoafspilning m.m. Du ser normalt ikke JavaScript, når du kigger på et websted. Men når du opbygger en genvej, der indeholder handlingen Start JavaScript på webside, og derefter afvikler genvejen fra appen Safari, kan du styre en websides JavaScript.
Du kan bruge genveje, der afvikler din specielle JavaScript på en webside, til utallige formål. Du kan f.eks. oprette genveje, der henter bestemte data fra en webside og derefter integrerer dem i en opgave. Du kunne eksempelvis hente et kursusskema og derefter tilføje det i Kalender eller eksportere data om medlemmerne i en gruppe på de sociale medier og tilføje disse data i et regneark.
Du kan også oprette genveje, du kan bruge til at ændre en webside, f.eks. skifte skriften til websidens tekst eller den hastighed, en video afspilles med. Før du kan afvikle JavaScript fra en genvej, skal du slå indstillingen til. Se Avancerede anonymitets- og sikkerhedsindstillinger i Genveje på Mac.
Der er flere oplysninger om brug af genveje, der afvikler JavaScript på en webside, i Brug handlingen Start JavaScript på webside i Genveje på Mac.
Om hentning af data fra websider
Med handlingen Start JavaScript på webside kan du hente data fra en webside ved at indsamle alle de elementer, der opfylder bestemte kriterier, og derefter gennemløbe elementerne for at udføre en opgave med dataene (eller undersøge elementerne nærmere).
Du kan f.eks. oprette en liste med alle billedelementerne på en webside ved at bruge:
var elements = document.querySelectorAll("img");
I et andet eksempel kan du hente alle elementer med klassen “post” ved at bruge:
var elements = document.querySelectorAll(".post");
Når der er oprettet et NodeList-objekt, kan du gennemløbe elementerne (for at filtrere dem yderligere eller føje dem til en datastruktur) ved at bruge noget i stil med dette:
var elements = ...;
for (let element of elements) {
// ...
}
Der er flere oplysninger om forespørgsel af websideresultater på https://developer.mozilla.org/Selectors og https://developer.mozilla.org/SelectorAll.
Input til handlingen Start JavaScript på webside
Input til handlingen Start JavaScript på webside skal være en aktiv Safari-webside. Det betyder, at du skal afvikle genvejen fra siden til delinger (mere specifikt fra Safari, SFSafariViewController eller ASWebAuthenticationSession).
Når genvejen afvikles fra siden til delinger, videreføres input fra appen Safari til den første handling i din genvej.
Selvom input til handlingen Start JavaScript på webside skal være en Safari-webside, kan du indsætte flere data i handlingen ved at bruge magiske variabler. F.eks. indeholder genvejen Skift videohastighed (tilgængelig i Galleri) handlingen Start JavaScript på webside, som ændrer en video på en webside. Videoens afspilningshastighed styres af variablen Speed.
I Start en genvej, mens du arbejder på din Mac finder du oplysninger om, hvordan du afvikler genveje fra Safari.
Output fra handlingen Start JavaScript på webside
Du skal kalde afslutningsrutinen i JavaScript, f.eks. completion(result)
, for at returnere data. Da JavaScript som regel bruges til asynkrone mønstre, er kaldet med vilje ikke synkront. Det giver dig mulighed for at afslutte handlingen asynkront. Følgende er f.eks. gyldigt:
window.setTimeout(function() {
completion(true);
}, 1000);
Output fra handlingen Start JavaScript på webside er alle gyldige JSON-datatyper, herunder:
Streng
Tal
Boolesk (sand eller falsk)
Matrice (indeholder enhver anden gyldig JSON-type)
Ordbog (indeholder enhver anden gyldig JSON-type)
Null
Ikke defineret
Genveje koder og afkoder automatisk din returværdi i baggrunden til kommunikation mellem JavaScript og appen Genveje. Det betyder, at du ikke behøver at kalde JSON.stringify(result)
, før afslutningsrutinen kaldes.
Da returværdien er JSON, fungerer visse returværdier ikke særlig godt. En funktion eller et knudepunkt har ikke en nyttig JSON-kodet repræsentation. I så fald anbefales det, at du opretter en matrice/ordbog, der indeholder de JSON-kompatible værdier, du har brug for.
Bemærk: Eftersom et objekt i JavaScript blot er en ordbog, giver en konvertering af grundlæggende objekter til JSON et godt resultat.
Hvis du ikke vil returnere nogen data fra handlingen Start JavaScript på webside, kan du kalde completion()
uden et argument i funktionen (fordi undefined
er gyldigt output). Det svarer til at kalde completion(undefined)
.
Du kan få flere oplysninger om JSON i Introduktion til brug af JSON i Genveje på Mac.
Du kan finde flere oplysninger om knudepunkter på https://developer.mozilla.org/Node.
Du kan finde flere oplysninger om funktioner på https://developer.mozilla.org/Functions.
Tidsgrænse for handlingen Start JavaScript på webside
Handlingen Start JavaScript på webside har, som alle JavaScript-udvidelser i Safari, en tidsgrænse, og skal afvikles så hurtigt som muligt. JavaScript, der bruger synkrone funktioner, afvikles muligvis ikke i tide, inklusive:
window.alert()
window.prompt()
window.confirm()
Timeouts, der varer flere sekunder – for eksempel:
window.setTimeout(function() { completion(); }, 5000);
Hvis dit JavaScript overskrider tidsgrænsen, vil genvejen ikke blive udført, og der vises en JavaScript-fejlmeddelse om timeout, når du afvikler genvejen.
Syntaks og håndtering af fejl under afvikling
Du kan bruge enhver syntaks, der understøttes i Safari, til at skrive JavaScript i handlingen Start JavaScript på webside.
I appen Genveje hjælper handlingen Start JavaScript på webside dig med at finde fejl ved at foretage en grundlæggende syntakskontrol, før du afvikler genvejen fra Safari-udvidelsen.
Samtidig med at du indtaster dine instrukser i tekstfeltet, hjælper fremhævning af syntaks med til at sikre, at din JavaScript-instruks er gyldig. Hvis du f.eks. glemmer at skrive anførselstegnene sidst i en streng, fremhæves al teksten efter den pågældende streng.
Hvis syntaksen i din instruks er gyldig, men indeholder en afviklingsfejl, fanger handlingen Start JavaScript på webside undtagelserne og viser dem. Hvis din instruks f.eks. henviser til en variabel eller en funktion, der ikke eksisterer (f.eks. shortcuts.completion()
), vises en fejl under afviklingen.