A Mac gép Parancsok appjának JavaScript futtatása weboldalon műveletének bemutatása
Csaknem minden weboldal JavaScript – egy programnyelv, amely dinamikus effektusokat (animációkat, interaktív menüket, videolejátszást stb.) hoz létre – használatával van szkriptelve. Általában a JavaScript-szkriptekkel nem találkozik, amikor a weboldalt tekint meg. Ugyanakkor ha létrehoz egy parancsot, amely tartalmazza A JavaScript futtatása weboldalon műveletet, majd futtatja a parancsot a Safari appban, vezérelheti a weboldal JavaScript funkcióit.
A JavaScript futtatása weboldalon műveletet futtató parancsoknak számtalan felhasználási módja van. Például létrehozhat olyan parancsot, amelyek kinyer bizonyos adatokat egy weboldalról, majd beépíti azokat egy feladatba – például kinyerhet egy osztályütemezést, és hozzáadhatja azt a Naptár apphoz, vagy exportálhatja egy közösségioldal-csoport tagadatait, majd hozzáadhatja azokat egy táblázathoz.
Olyan parancsokat is létrehozhat, amelyekkel módosíthat egy weboldalt, példádul módosítja a weboldalon található szövegek betűkészletét, vagy módosítja a videolejátszás sebességét. Mielőtt futtathatna JavaScriptet egy parancsból, engedélyeznie kell a beállítást. Lásd: Speciális adatvédelmi és biztonsági beállítások a Mac gép Parancsok alkalmazásában.
Ha többet szeretne megtudni arról,hogyan használhat JavaScriptet weboldalakon olvassa el a következő cikket: A Mac gép Parancsok alkalmazásának JavaScript futtatása weboldalon műveletének használata.
Adatok kinyerése weboldalakról
A JavaScript futtatása weboldalon művelettel adatokat nyerhet ki egy weboldalról, úgy hogy begyűjt egy kritériumnak megfelelő minden elemet, majd ismételten lefuttathatja az elemeken, hogy valamilyen feladatot végezzen el az adatokkal (vagy, hogy tovább vizsgálja az elemeket).
Például, ha listába szeretné rendezni egy weboldal minden képelemét, használja a következőt:
var elements = document.querySelectorAll("img");
Egy másik példa: ha minden „post” osztályú elemet be szeretne gyűjteni, használja a következőt:
var elements = document.querySelectorAll(".post");
A NodeList létrehozását követően ismételten lefuttathatja az elemeken (hogy tovább szűrje az elemeket vagy az elemeket hozzáadja egy adatstruktúrához), használjon ehhez hasonlót:
var elements = ...;
for (let element of elements) {
// ...
}
További információ a weboldalakon található eredmények lekérdezéséről: https://developer.mozilla.org/Selectors és https://developer.mozilla.org/SelectorAll.
JavaScript futtatása weboldalon művelet bemenete
A JavaScript futtatása weboldalon művelet bemenete egy aktív Safari-weboldal lehet, tehát a parancsot a megosztás lapról kell futtatnia (pontosabban a Safariból, a SFSafariViewController vagy az ASWebAuthenticationSession objektummal).
Ha a parancsot a Megosztás lapról futtatja a Safari appból származó bemenet a parancs első műveletének lesz átadva.
Ugyan a JavaScript futtatása művelet bemenete csak Safari weboldal lehet, a Magic-változók segítségével további adatokat is hozzáadhat a művelethez. Például a Videosebesség módosítása parancs (elérhető a Galériában) tartalmaz egy JavaScript futtatása weboldalon műveletet, amely módosít egy videót a weboldalon. A videó lejátszási sebességét a Sebesség változó vezérli.
Ha többet szeretne megtudni a parancsok futtatásáról a Safariban, lásd: Parancs futtatása a Macen történő munkavégzés közben.
JavaScript futtatása weboldalon művelet kimenete
Ahhoz, hogy adatokat kapjon vissza, meg kell hívnia a befejezéskezelőt a JavaScriptben, például: completion(result)
. A JavaScript általában aszinkron mintákat használ, ezért a meghívás nem szinkronizált. Így aszinkron módon fejezheti be a műveletet. Például, a következő érvényes:
window.setTimeout(function() {
completion(true);
}, 1000);
A JavaScript futtatása weboldalon művelet kimenete bármilyen érvényes JSON-adattípus lehet, többek között:
Karakterlánc
Szám
Logikai (igaz vagy hamis)
Tömb (bármilyen érvényes JSON-típust tartalmazó)
Szótár (bármilyen érvényes JSON-típust tartalmazó)
Null
Nem meghatározott
A színfalak mögött a Parancsok automatikusan kódolja és dekódolja a visszakapott értéket, hogy kommunikáljon a JavaScript és a Billentyűparancsok app között. Ez azt jelenti, hogy nem kell meghívnia a JSON.stringify(result)
parancsot a befejezéskezelő előtt.
Mivel a visszaküldött érték JSON, bizonyos visszaküldött értékek nem működnek megfelelően. A függvényeknek vagy a csomópontoknak például nincs használható, JSON-kódolású reprezentációjuk. Ebben az esetben érdemes egy olyan tömböt/szótárt hozzáadnia, amely tartalmazza az Önnek szükséges, JSON-kompatibilis értékeket.
Megjegyzés: Mivel egy objektum JavaScriptben csak egy szótár, az egyszerű objektumok könnyen konvertálhatók JSON-ná.
Ha nem szeretne visszaküldeni semmilyen adatot a JavaScript futtatása weboldalon műveletből, meghívhatja a completion()
elemet argumentum nélkül a függvényben (mert az undefined
egy érvényes kimenet). Ez egyenértékű azzal, mintha a completion(undefined)
elemet hívná meg.
A JSON-nal kapcsolatos további információkért lásd: A JSON használatának bemutatása a Mac gép Parancsok alkalmazásában.
A fürtökkel kapcsolatos további információért lásd: https://developer.mozilla.org/Node.
A funkciókkal kapcsolatos további információért lásd: https://developer.mozilla.org/Functions.
JavaScript futtatása weboldalon művelet időkorlátja
A Safari összes JavaScript-bővítményéhez hasonlóan a JavaScript futtatása weboldalon műveletre is időkorlát érvényes, és a lehető leggyorsabban végre kell hajtani. Lehet, hogy a szinkron függvényeket használó JavaScript nem fejeződik be időben; például:
window.alert()
window.alert()
window.confirm()
Több másodpercig tartó időkorlát-túllépések; például:
window.setTimeout(function() { completion(); }, 5000);
Ha a JavaScript túllépi az időkorlátot, a parancs nem fog végrehajtódni, és a JavaScript időtúllépésére figyelmeztető hibaüzenet jelenik meg a parancs futtatásakor.
Szintaxis- és futásidőhibák kezelése
A Safariban támogatott bármilyen szintaxist használhat JavaScript írásához a JavaScript futtatása weboldalon műveletben.
A Parancsok appban a JavaScript futtatása weboldalon művelet segítségével egyszerű szintaktikai ellenőrzéssel észreveheti a hibákat, mielőtt a Safari-bővítményből futtatná a parancsot.
Miközben megadja a szkriptet a szövegmezőben a szintaxis kiemelése segít meggyőződni arról, hogy a JavaScript érvényes. Például, ha kifelejti az idézőjelet egy karakterlánc végéről, a karakterlánc utáni teljes szöveg ki lesz emelve.
Ha a szkript szintaxisa helyes, azonban futásidőhibát tartalmaz, a JavaScript futtatása weboldalon művelet megtalálja és megjeleníti a kivételeket. Például, ha a szkript egy olyan változóra vagy függvényre hivatkozik, amely nem létezik (például shortcuts.completion()
), hiba jelenik meg a futásidőben.