![](https://help.apple.com/assets/5BD750C1094622A9114E3435/5BD750CA094622A9114E3445/hr_HR/c10e8a839dc838a25d0feb0e9e428a0a.png)
O postupku Pokreni JavaScript na web stranici u Prečacima
Gotovo su sve web stranice skriptirane pomoću JavaScripta, programskog jezika koji izrađuje dinamičke efekte u internetskim preglednicima, uključujući animacije, interaktivne izbornike, video reprodukciju, i ostalo. Općenito, niste izloženi JavaScriptu kako surfate web stranicom. Međutim, ako izradite prečac koji sadrži postupak Pokreni JavaScript na web stranici i zatim pokrenete prečac iz aplikacije Safari, možete upravljati JavaScriptom web stranice.
Prečaci kojima se pokreće vaš prilagođeni JavaScript na web stranici mogu se upotrebljavati na mnoge načine. Primjerice, možete izraditi prečace koji dohvaćaju određene podatke s web stranice i zatim uključuju te podatke u zadatak, poput izdvajanja rasporeda razreda i zatim dodavanja rasporeda u aplikaciju Kalendar ili eksportiranja podataka po članovima Facebook grupe i zatim dodavanja tih podataka u tablični dokument.
Možete također izraditi prečace pomoću kojih možete izmijeniti web stranicu, poput mijenjanja fonta teksta web stranice ili promjene brzine reprodukcije videozapisa.
Za informacije o korištenju prečaca koji pokreću JavaScript na web stranici pogledajte Uporaba postupka Pokreni JavaScript na web stranici u Prečacima.
O učitavanju podataka s web stranice
Pomoću postupka Pokreni JavaScript na web stranici možete učitati podatke s web stranice tako da dohvatite sve elemente koji odgovaraju određenim kriterijima i zatim višestruko obradite te elemente kako bi izvršili zadatak s podacima (ili dalje istražili elemente).
Primjerice, za izradu popisa svakog slikovnog elementa na web stranici upotrijebite:
var elementi = document.querySelectorAll("img");
U drugom primjeru, za učitavanje svakog elementa klase “post” upotrijebite:
var elementi = document.querySelectorAll(".post");
Kada se izradi NodeList možete višestruko obrađivati elemente (kako biste dalje filtrirali elemente ili dodali elemente u podatkovnu strukturu) koristeći nešto poput:
var elements = ...;
for (let element of elements) {
// ...
}
Za više informacija o ispitivanju rezultata web stranice pogledajte https://developer.mozilla.org/Selectors i https://developer.mozilla.org/SelectorAll.
Ulaz za postupak Pokreni JavaScript na web stranici
Ulaz za postupak Pokreni JavaScript na web stranici mora imati aktivnu Safari web stranicu što znači da morate pokrenuti prečac iz ekstenzije postupka Prečaca u dijeljenju listova (posebice iz Safarija, SFSafariViewControllera ili ASWebAuthenticationSessiona).
Kada je prečac pokrenut s dijeljenja lista, ulaz iz aplikacije Safari prosljeđuju se u prvu radnju vašeg prečaca.
Iako ulaz za postupak Pokreni JavaScript na web stranici mora biti Safari web stranica, možete umetnuti dodatne podatke u postupak koristeći Magične varijable. Primjerice, prečac u nastavku sadrži postupak Pokreni JavaScript na web stranici koji mijenja videozapis na web stranici. Brzinom reprodukcije upravlja varijabla Brzina.
![Urednik prečaca s prikazom postupka Pokreni JavaScript na web stranici koja sadrži Magičnu varijablu.](https://help.apple.com/assets/5BD750C1094622A9114E3435/5BD750CA094622A9114E3445/hr_HR/e9f56af476b1391192c65ed3f998f604.png)
Savjet: Prečac Promijeni brzinu videozapisa dostupan je u Galeriji.
Ako postupak Pokreni JavaScript na web stranici nije prvi postupak u vašem prečacu, prikazat će se poruka greške kada pokrenete prečac.
![Urednik prečaca s prikazom poruke greške Nema web stranice.](https://help.apple.com/assets/5BD750C1094622A9114E3435/5BD750CA094622A9114E3445/hr_HR/65a4f96b81e25cba4782703afb8a8df7.png)
Kako biste ovo ispravili možete dodati postupak Dohvati varijablu i podesiti ovaj parametar na web stranici u Safariju kako bi proslijedila njezin sadržaj u postupak Pokreni JavaScript na web stranici.
Za informacije o pokretanju prečaca iz Safarija pogledajte Postavljanje i pokretanje prečaca iz druge aplikacije.
Izlaz postupka Pokreni JavaScript na web stranici
Za vraćanje podataka morate pozvati upravljački program za dovršavanje u JavaScriptu, poput dovršetak(rezultat)
. Kako se JavaScript obično upotrebljava s asinkronim obrascima, poziv namjerno nije sinkroni. Ovako radnu možete dovršiti na asinkroni način. Primjerice, vrijedi sljedeće:
window.setTimeout(function() {
completion(true);
}, 1000);
Izlaz postupka Pokreni JavaScript na web stranici je bilo koja važeća vrsta JSON podataka, uključujući:
Niz
Broj
Booleovo (točno ili netočno)
Skup (koji sadrži bilo koju drugu važeću JSON vrstu)
Rječnik (koji sadrži bilo koju drugu važeću JSON vrstu)
Nula
Nije definirano
Za više informacija o JSON formatu pogledajte O uporabi JSON formata u Prečacima.
Iza kulica, aplikacija Prečaci automatski kodira i dekodira vašu vraćenu vrijednost za komunikaciju između JavaScripta i aplikacije Prečaci. To znači da ne trebate pozvati JSON.stringify(rezultat)
prije pozivanja upravljačkog programa za dovršavanje.
Kako je povratna vrijednost JSON, određene povratne vrijednosti neće dobro funkcionirati. Primjerice, funkcija ili Čvor neće imati korisnu JSON kodirani prikaz. U tom slučaju se preporuča da izradite Skup/Rječnik koji sadrži vrijednosti kompatibilne s JSON formatom koje su vam potrebne.
Za više informacija o Čvorovima pogledajte https://developer.mozilla.org/Node; za više informacija o funkcijama pogledajte https://developer.mozilla.org/Functions.
Napomena: Kako je objekt u JavaScriptu samo rječnik, osnovni objekti dobro se konvertiraju u JSON.
Ako ne želite vratiti bilo koji podatak iz postupka Pokreni JavaScript na web stranici, možete pozvati dovršetak()
bez argumenta u funkciji (jer je nedefinirano
važeći izlaz). Ovo je identično pozivanju dovršetak(nedefinirano)
.
Vremensko ograničenje postupka Pokreni JavaScript na web stranici
Kao sve JavaScript ekstenzije u Safariju, postupak Pokreni JavaScript na web stranici podložan je vremenskom ograničenju i treba se dovršiti što je prije moguće. JavaScript koji koristi sinkrone funkcije možda se neće na vrijeme dovršiti, uključujući:
Grupu prozora
window.prompt()
window.confirm()
Istek vremena koji traje više sekunda—primjerice:
window.setTimeout(funkcija() { dovršetak(); }, 5000);
Ako vaš JavaScript prekoračuje vremensko ograničenje, prečac se neće dovršiti i kada pokrenete prečac pojavit će se poruka greške Isteklo vrijeme JavaScripta.
![Urednik prečaca s prikazom poruke greške Isteklo vrijeme JavaScripta.](https://help.apple.com/assets/5BD750C1094622A9114E3435/5BD750CA094622A9114E3445/hr_HR/44910bdbd823ce678742101cca7470aa.png)
Upravljanje sintaksom i greškama u izvođenju
Možete upotrijebiti bilo koju sintaksu koja je podržana u Safariju za pisanje JavaScripta u postupku Pokreni JavaScript na web stranici. iOS 12 podržava ECMA 6 JavaScript sintaksu, uključujući za od
petlji i zapreke
.
U aplikaciji Prečaci postupak Pokreni JavaScript na web stranici pomaže vam uočiti greške tako da provodi osnovnu provjeru sintakse prije pokretanja prečaca iz Safari ekstenzije.
Kako unosite svoju skriptu u tekstualno polje, naglašavanje sintakse pomaže u osiguravanju važećeg JavaScripta. Primjerice, ako zaboravite unijeti navodnike na kraju niza, istaknut je cijeli tekst koji slijedi iza niza.
Ako je sintaksa vaše skripte važeća, ali sadrži grešku u izvođenju, postupak Pokreni JavaScript na web stranici hvata i prikazuje iznimke. Primjerice, ako vaša skripta navodi varijablu ili funkciju koja ne postoji (poput prečaci.dovršetak()
), prikazat će se greška tijekom izvođenja.
![Urednik prečaca s prikazom poruke greške JavaScript iznimka.](https://help.apple.com/assets/5BD750C1094622A9114E3435/5BD750CA094622A9114E3445/hr_HR/118c5630b95e2713b7245c6eca7c13aa.png)
Privatnost i sigurnost
Kada dozvolite prečac za pokretanje JavaScripta na web stranici, taj prečac može pristupiti svim informacijama na toj web stranici, uključujući potencijalno osjetljive podatke. Aplikacija Prečaci poduzima nekoliko mjera kako bi se osiguralo sigurno i privatno pokretanje JavaScript prečaca.
Kada pokrećete prečac koji sadrži postupak Pokreni JavaScript na web stranici, upit se pojavljuje s informacijom da će prečac upravo imati interakciju s web stranicom. To znači da prečac može pristupiti potencijalno osjetljivim podacima s web stranice, poput lozinki, telefonskih brojeva ili informacija o kreditnim karticama.
![Urednik prečaca s prikazom upita za dozvoljavanje prečacu da se pokrene na određenoj domeni.](https://help.apple.com/assets/5BD750C1094622A9114E3435/5BD750CA094622A9114E3445/hr_HR/24e9e69fc78909f6d5d85f2c3beb6737.png)
Kada dotaknete Dozvoli prečac se pokreće na određenoj web stranici. Ako ponovno pokrećete isti prečac na istoj web stranici, aplikacija Prečaci neće ponovno prikazati upit. Ovaj se dozvola zadržava po prečacu, po web stranici.
Nakon što ste dozvolili prečacu pristup web stranici, Prečaci će napraviti dodatni korak kako bi vas nadalje zaštitili od potencijalno zloćudnih skripti tako da će periodički preuzimati ažurirane definicije zloćudnog softvera. Prije interakcije s web stranicom, aplikacija Prečaci analizira JavaScript, zatim gleda u definicije zloćudnog softvera. Na temelju ove evaluacije, aplikaciji Prečaci nalaže se da dozvoli tu skriptu, da ne dozvoli tu skriptu ili da prikaže dodatni upit prije nego dozvoli prečacu pokretanje.
Ova se evaluacija provodi na vašem uređaju – sadržaj na vašem JavaScriptu (u tekstualnom polju postupka Pokreni JavaScript na web stranici) – ne šalje se vanjskom poslužitelju na analizu.
Ako je pokretanje prečaca blokirano, prikazat će se poruka greške s objašnjenjem.
Važno: Ne biste smjeli nikada pokrenuti prečac koji sadrži JavaScript koji je nepouzdan.