A Parancsok alkalmazás 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 alkalmazásban, 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 alkalmazáshoz, 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.
Ha többet szeretne megtudni arról,hogyan használhat JavaScriptet weboldalakon olvassa el a következő cikket: A Parancsok alkalmazás 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 alkalmazásbó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 következő parancs 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.
Tipp: A Videosebesség módosítása parancs elérhető a Galériában.
Ha többet szeretne megtudni a parancsok futtatásáról a Safariban, lásd: Parancs futtatása egy másik alkalmazásban.
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ó)
Nulla
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 alkalmazás 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 Parancsokban való használatának bemutatása.
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. Az iOS 13 és az iPadOS az ECMA 6 JavaScript-szintaxist támogatja, beleértve a for of
hurkokat és a let
elemet.
A Parancsok alkalmazásban 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.
Adatvédelem és biztonság
Ha engedélyezi, hogy egy parancs JavaScriptet futtasson weboldalon, akkor a parancs hozzáférhet a weboldal összes információjához – beleértve a esetleg érzékeny adatokat is. A Parancsok alkalmazás elvégez néhány intézkedést, hogy biztosítsa, hogy JavaScript parancsát biztonságosan és az adatvédelmi szempontokat figyelembe véve futtassa.
Amikor JavaScript futtatása weboldalon műveletet tartalmazó parancsot futtat, egy figyelmeztetés jelenik meg, amely tájékoztatja, hogy a parancs kapcsolatba készül lépni a weboldallal. Ez azt jelenti, hogy a parancs hozzáférhet a weboldalról származó, potenciálisan érzékeny természetű adatokhoz, például jelszavakhoz, telefonszámokhoz vagy hitelkártya-információkhoz.
Amikor az Engedélyezés lehetőségre koppint, a parancs lefut a megadott weboldalon. Ha ugyanazt a parancsot futtatja ugyanazon a weboldalon, a Parancsok nem jeleníti meg ismét a figyelmeztetést. Ez az engedély parancsonként és weboldalanként érvényes.
Miután engedélyezte a parancsnak, hogy elérje a weboldalt, a Parancsok még egy további lépést tesz annak érdekében, hogy megvédje a potenciálisan rosszindulatú szkriptektől; ehhez rendszeresen letölti a rosszindulatú szoftverek frissített definícióit. A Parancsok, mielőtt kommunikálni a weboldallal, elemzi a JavaScriptet, és beolvassa a rosszindulatú szoftverek definícióit. Ezen információk alapján a Parancsok utasítást kap arra vonatkozóan, hogy engedélyezze a szkriptet, letiltsa a szkriptet, vagy további üzenetet jelenítsen meg, mielőtt engedélyezné a parancs futtatását.
Ez az értékelés az Ön eszközén történik (a JavaScript futtatása weboldalon művelet szövegmezőjében) JavaScriptje tartalma nem lesz elküldve külső szerverre elemzés céljából.
Ha egy parancs futása meg van akadályozva, egy tájékoztató üzenet jelenik meg.
Fontos: Soha ne futtasson olyan parancsot, amely nem megbízható JavaScriptet tartalmaz.