Johdanto Pikakomentojen Suorita JavaScript verkkosivulla -toimintoon
Lähes kaikissa verkkosivuissa on käytetty JavaScriptiä, ohjelmointikieltä, joka luo verkkoselaimissa dynaamisia tehosteita, kuten animaatioita, vuorovaikutteisia valikoita, videoita ja muuta. JavaScript ei yleensä näy, kun tarkastelet verkkosivua. Voit kuitenkin hallita verkkosivun JavaScriptiä laatimalla pikakomennon, joka sisältää Suorita JavaScript verkkosivulla -toiminnon, ja suorittamalla pikakomennon sitten Safari-apissa.
Pikakomentoja, jotka suorittavat muokatun JavaScriptin verkkosivulla, voi käyttää moniin tarkoituksiin. Voit esimerkiksi luoda pikakomentoja, jotka noutavat verkkosivulta tiettyä dataa ja sisällyttävät sen sitten tehtävään (esimerkiksi luentoaikataulun noutaminen ja sen lisääminen Kalenteri-appiin, tai sosiaalisen median ryhmän jäsentietojen vieminen ja näiden tietojen lisääminen laskentataulukkoon).
Voit myös luoda pikakomentoja, joilla voi muokata verkkosivua, kuten muuttaa verkkosivun fonttia tai nopeutta, jolla videota toistetaan.
Jos haluat tietoja JavaScriptiä verkkosivulla suorittavien pikakomentojen käyttämisestä, katso Suorita JavaScript verkkosivulla -toiminnon käyttäminen Pikakomennoissa.
Tietoja: verkkosivujen datan noutaminen
Suorita JavaScript verkkosivulla -toiminnolla voit noutaa dataa verkkosivulta poimimalla sieltä kaikki tietyt kriteerit täyttävät elementit ja sitten käydä läpi elementit ja suorittaa datalla tehtävän (tai tarkastella elementtejä lähemmin).
Jos esimerkiksi haluat luoda listan verkkosivun kaikista kuvaelementeistä:
var elements = document.querySelectorAll("img");
Toisena esimerkkinä kaikkien post-luokan elementtien noutaminen:
var elements = document.querySelectorAll(".post");
Kun NodeList on luotu, voit käydä elementit läpi (ja suodattaa niitä edelleen tai lisätä niitä datarakenteeseen) esimerkiksi seuraavasti:
var elements = ...;
for (let element of elements) {
// ...
}
Lisätietoja verkkosivun tulosten kyselemisestä saat osoitteista https://developer.mozilla.org/Selectors ja https://developer.mozilla.org/SelectorAll.
Suorita JavaScript verkkosivulla -toiminnon syöte
Suorita JavaScript verkkosivulla -toiminnon syötteen on oltava aktiivinen Safari-verkkosivu. Tämä tarkoittaa, että sinun on suoritettava pikakomento jakosivulta (erityisesti Safarista, laajennuksesta SFSafariViewController tai ASWebAuthenticationSession).
Kun pikakomento suoritetaan jakosivulla, Safari-apista tuleva syöte annetaan pikakomennon ensimmäiseen toimintoon.
Vaikka Suorita JavaScript verkkosivulla -toiminnon syötteen on oltava Safari-verkkosivu, voit lisätä toimintoon lisätietoja käyttämällä taikamuuttujia. Esimerkiksi seuraava pikakomento sisältää Suorita JavaScript verkkosivulla -toiminnon, joka muokkaa verkkosivulla olevaa videota. Videon toistonopeutta ohjataan Speed-muuttujalla.
Vinkki: Pikakomento Change Video Speed (muuta videon nopeutta) on nyt saatavilla Galleriassa.
Jos haluat tietoja pikakomentojen suorittamisesta Safarissa, katso Pikakomennon suorittaminen toisessa apissa.
Suorita JavaScript verkkosivulla -toiminnon tuotos
Datan palauttamiseksi JavaScriptissä on käytettävä loppukäsittelijää, kuten completion(result)
. Koska JavaScriptiä käytetään yleensä asynkronisesti, kutsu ei tarkoituksella ole synkroninen. Näin voit suorittaa toiminnon loppuun asynkronisesti. Esimerkiksi seuraava on kelvollinen:
window.setTimeout(function() {
completion(true);
}, 1000);
Suorita JavaScript verkkosivulla -toiminnon tuotos on mikä tahansa kelvollinen JSON-datatyyppi, mukaan lukien seuraavat:
merkkijono
numero
totuusarvo (tosi tai epätosi)
taulu (joka sisältää minkä tahansa muun kelvollisen JSON-tyypin)
sanakirja (joka sisältää minkä tahansa muun kelvollisen JSON-tyypin)
Tyhjä
Määrittelemätön
Pikakomennot koodaa ja purkaa palautetun arvon automaattisesti taustalla JavaScriptin ja Pikakomennot-apin välistä kommunikointia varten. Näin ollen sinun ei tarvitse käyttää funktiota JSON.stringify(result)
ennen loppukäsittelijän käyttämistä.
Koska palautettu arvo on JSON, tietyt palautetut arvot eivät toimi hyvin. Esimerkiksi toiminnolla tai solmulla ei ole hyödyllistä JSON-koodattua esitystä. Tässä tapauksessa suositellaan luotavaksi taulu/sanakirja, joka sisältää tarvitsemasi JSON-yhteensopivat arvot.
Huomaa: Koska objekti on JavaScriptissä vain sanakirja, perusoliot muuntuvat JSON-muotoon hyvin.
Jos et halua palauttaa mitään dataa Suorita JavaScript verkkosivulla -toiminnosta, voit käyttää funktiota
ilman argumenttia (koska completion()
määrittämätön
on kelvollinen tuotos). Tämä on sama kuin kutsu completion(undefined)
.
Jos haluat lisätietoja JSONista, katso Johdanto JSONin käyttämiseen Pikakomennoissa.
Lisätietoja solmuista saat osoitteesta https://developer.mozilla.org/Node.
Lisätietoja toiminnoista saat osoitteesta https://developer.mozilla.org/Functions.
Suorita JavaScript verkkosivulla -toiminnon aikaraja
Kaikkien Safarin JavaScript-laajennusten tavoin myös Suorita JavaScript verkkosivulla -toiminnolla on aikaraja ja se tule suorittaa loppuun niin nopeasti kuin mahdollista. Synkronisia toimintoja käyttäviä JavaScripteja ei välttämättä saada suoritettua ajoissa loppuun, mukaan lukien:
window.alert()
window.prompt()
window.confirm()
Useita sekunteja kestävät aikakatkaisut, esimerkiksi:
window.setTimeout(function() { completion(); }, 5000);
Jos JavaScript ylittää aikarajan, pikakomentoa ei suoriteta loppuun ja näytöllä näkyy JavaScript-aikakatkaisu-virheviesti pikakomentoa suoritettaessa.
Syntaksi ja ajonaikaisten virheiden käsittely
Voit kirjoittaa JavaScriptiä Suorita JavaScript verkkosivulla -toimintoon millä tahansa Safarin tukemalla syntaksilla. iOS 13 ja iPadOS tukevat JavaScript-syntaksia ECMA 6, mukaan lukien for of
-silmukat ja let
.
Pikakomennot-apissa Suorita JavaScript verkkosivulla -toiminto auttaa löytämään virheitä tarkistamalla syntaksin ennen kuin suoritat pikakomennon Safarin laajennuksesta.
Kun syötät skriptiä tekstikenttään, syntaksin korostus auttaa varmistamaan, että JavaScript on kelvollista. Jos esimerkiksi unohdat lainausmerkin merkkijonon lopusta, kaikki merkkijonoa seuraava teksti on korostettu.
Jos skriptin syntaksi on kelvollinen, mutta siinä on ajonaikainen virhe, Suorita JavaScript verkkosivulla -toiminto näyttää poikkeukset. Jos skripti esimerkiksi viittaa muuttujaan tai funktioon, jota ei ole olemassa (kuten shortcuts.completion()
), ajon aikana tulee näkyviin virhe.
Suojaus ja yksityisyys
Kun sallit pikakomennon suorittaa Javascriptia verkkosivulla, tämä pikakomento pääsee käsiksi kaikkiin verkkosivulla oleviin tietoihin – mukaan lukien mahdolliset arkaluontoiset tiedot. Pikakomennot-appi käyttää muutamia keinoja sen varmistamiseen, että käytät JavaScript-pikakomentoa turvallisesti ja yksityisesti.
Kun suoritat pikakomennon, joka sisältää Suorita JavaScript verkkosivulla -toiminnon, näkyviin tulee kehote, että pikakomento käyttää verkkosivua. Tämä tarkoittaa, että pikakomento voi käyttää verkkosivulla mahdollisesti olevia arkaluontoisia tietoja, kuten salasanoja, puhelinnumeroja tai luottokorttitietoja.
Kun napautat Salli, pikakomento suoritetaan määritetyllä verkkosivulla. Jos suoritat saman pikakomennon samalla verkkosivulla uudelleen, Pikakomennot ei näytä kehotetta uudelleen. Tämä lupa on pikakomento- ja verkkosivukohtainen.
Kun olet sallinut pikakomennon käyttää jotakin verkkosivua, Pikakomennot suorittaa vaiheen, joka suojaa sinua mahdollisesti haitallisilta skripteiltä, lataamalla säännöllisesti päivitettäviä haittaohjelmien määritelmiä. Ennen vuorovaikutusta verkkosivun kanssa Pikakomennot analysoi JavaScriptin ja tarkistaa sitten haittaohjelmien määritelmät. Tämän evaluoinnin perusteella Pikakomennot sallii skriptin, estää skriptin tai näyttää ylimääräisen kehotteen ennen pikakomennon suorittamisen sallimista.
Tämä evaluointi suoritetaan laitteessa. JavaScriptin sisältöä (Suorita JavaScript verkkosivulla -toiminnon tekstikentässä) ei lähetetä ulkoiselle palvelimelle analysoitavaksi.
Jos pikakomentoa ei voida suorittaa, näkyviin tulee selittävä virheviesti.
Tärkeää: Älä koskaan suorita pikakomentoa, jonka sisältämään JavaScriptiin et luota.