Johdanto iPhonen ja iPadin 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. Ennen kuin suoritat JavaScriptiä pikakomennosta, sinun on otettava asetus käyttöön. Katso iPhonen ja iPadin Pikomentojen lisäasetukset yksityisyydelle ja suojaukselle.
Jos haluat tietoja JavaScriptiä verkkosivulla suorittavien pikakomentojen käyttämisestä, katso Suorita JavaScript verkkosivulla -toiminnon käyttäminen iPhonen ja iPadin 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 jakosivusta (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 Muuta videonopeutta ‑pikakomento (saatavilla Galleriassa) sisältää Suorita JavaScript verkkosivulla -toiminnon, joka muokkaa verkkosivulla olevaa videota. Videon toistonopeutta ohjataan Speed-muuttujalla.
Jos haluat tietoja pikakomentojen suorittamisesta Safarissa, katso Pikakomennon käynnistäminen toisesta apista iPhonessa tai iPadissa.
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)
nolla
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 completion()
ilman argumenttia (koska 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 iPhonen ja iPadin 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.
Pikakomennot-apissa Suorita JavaScript verkkosivulla -toiminto auttaa löytämään virheitä tarkistamalla syntaksin ennen kuin suoritat pikakomennon Safarin laajennuksesta.
Kun syötäy 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.