Wprowadzenie do czynności Uruchom JavaScript na stronie www w aplikacji Skróty
Niemal wszystkie strony www korzystają ze skryptów utworzonych w JavaScript. Ten język programowania pozwala tworzyć dynamiczne efekty dostępne bezpośrednio w przeglądarce, w tym animacje, menu interaktywne oraz okna odtwarzania wideo. Skrypty JavaScript nie są zwykle widoczne dla osób przeglądających witrynę. Możesz jednak sterować skryptem JavaScript na stronie www, tworząc skrót zawierający czynność Uruchom JavaScript na stronie www, a następnie uruchamiając go w Safari.
Skróty uruchamiające własne skrypty JavaScript na stronach www mają wiele zastosowań. Skrót może pobierać ze strony www określone dane, a następnie używać ich w zadaniu. Możesz w ten sposób uzyskać plan lekcji i dodać go do aplikacji Kalendarz albo wyeksportować dane grupy użytkowników mediów społecznościowych i dodać je do arkusza kalkulacyjnego.
Możesz także tworzyć skróty pozwalające modyfikować strony www, na przykład zmieniać czcionkę jej tekstu oraz szybkość odtwarzania osadzonego na niej wideo.
Aby uzyskać informacje na temat używania skrótów uruchamiających JavaScript na stronach www, zobacz: Używanie czynności Uruchom JavaScript na stronie www w aplikacji Skróty.
Uzyskiwanie danych ze stron www
Czynność Uruchom JavaScript na stronie www pozwala uzyskiwać dane ze stron www, przechwytując elementy spełniające określone kryteria, a następnie wykonywać zadania przy użyciu tych danych (albo analizować elementy strony bardziej szczegółowo) metodą iteracji.
Aby na przykład utworzyć listę wszystkich obrazków na stronie www, użyj następującego kodu:
var elements = document.querySelectorAll("img");
Aby z kolei uzyskać wszystkie elementy klasy „post”, użyj tego kodu:
var elements = document.querySelectorAll(".post");
Po utworzeniu obiektu NodeList możesz iterować po elementach (aby je bardziej szczegółowo filtrować lub dodać je do struktury danych), używając na przykład takiego kodu:
var elements = ...;
for (let element of elements) {
// ...
}
Aby uzyskać więcej informacji na temat zapytań o wyniki na stronach www, zobacz: https://developer.mozilla.org/Selectors i https://developer.mozilla.org/SelectorAll.
Dane wejściowe czynności Uruchom JavaScript na stronie www
Czynność Uruchom JavaScript na stronie www przyjmuje na wejściu aktywną stronę z Safari, co oznacza, że musisz uruchamiać skrót z arkusza udostępniania (dokładnie z Safari, kontrolera SFSafariViewController lub sesji ASWebAuthenticationSession).
Uruchomienie skrótu z arkuszu udostępniania powoduje przekazanie danych wejściowych z Safari do pierwszej czynności skrótu.
Dane wyjściowe czynności Uruchom JavaScript na stronie www muszą zawierać stronę w Safari, ale mogą obejmować także dodatkowe dane, dołączone przy użyciu magicznych zmiennych. Poniższy skrót zawiera na przykład czynność uruchom JavaScript na stronie www modyfikującą wideo na danej stronie. Szybkość odtwarzania wideo jest kontrolowana przy użyciu zmiennej Szybkość.
Porada: Skrót Change Video Speed jest dostępny w Galerii.
Aby uzyskać informacje na temat uruchamiania skrótów z Safari, zobacz: Uruchamianie skrótu w innej aplikacji.
Dane wyjściowe czynności Uruchom JavaScript na stronie www
Czynność zwróci dane, jeśli wywołasz procedurę obsługi zakończenia w JavaScript, na przykład completion(result)
. Ponieważ skrypty JavaScript są zwykle stosowane we wzorcach asynchronicznych, to wywołanie jest celowo niesynchroniczne. Dzięki temu czynność może zostać ukończona asynchronicznie. Poniższy przykład jest poprawny:
window.setTimeout(function() {
completion(true);
}, 1000);
Danymi wyjściowymi czynności Uruchom JavaScript na stronie www jest dowolny poprawny typ danych JSON, w tym:
ciąg znaków
liczba
wartość logiczna (prawda lub fałsz)
tablica (zawierająca dowolne inne poprawne typy JSON)
słownik (zawierający dowolny inny poprawny typ JSON)
Null
Undefined
Aplikacja Skróty komunikuje się ze skryptem JavaScript, automatycznie kodując i odkodowując zwracane wartości w tle. Oznacza to, że przed wywołaniem procedury obsługi zakończenia nie musisz wywoływać funkcji JSON.stringify(result)
.
Ponieważ zwracana wartość ma typ JSON, pewne zwracane wartości nie będą działały prawidłowo. Na przykład: funkcja lub obiekt Node nie ma przydatnej formy zakodowanej jako JSON. W takim przypadku zalecamy utworzenie tablicy lub słownika zawierającego wymagane wartości zgodne z JSON.
Uwaga: Ponieważ obiekt w JavaScript to po prostu słownik, obiekty podstawowe są konwertowane na JSON bez problemów.
Jeśli czynność Uruchom JavaScript na stronie www nie ma zwracać żadnych danych, możesz wywołać funkcję completion()
bez argumentów (ponieważ wartość undefined
jest poprawnym typem danych wyjściowych). Jest to równoznaczne z wywołaniem funkcji completion(undefined)
.
Aby uzyskać więcej informacji na temat JSON, zobacz: Wprowadzenie do używania formatu JSON w aplikacji Skróty.
Aby uzyskać więcej informacji na temat węzłów, zobacz: https://developer.mozilla.org/Node.
Aby uzyskać więcej informacji na temat funkcji, zobacz: https://developer.mozilla.org/Functions.
Limit czasu czynności Uruchom JavaScript na stronie www
Jak każde rozszerzenie JavaScript w Safari czynność Uruchom JavaScript na stronie www podlega limitowi czasu i powinna zostać ukończona jak najszybciej. Działanie skryptów JavaScript stosujących funkcje synchroniczne może nie zakończyć się na czas. Dotyczy to m.in. funkcji:
window.alert()
window.prompt()
window.confirm()
Limity czasowe o długości wielu sekund, na przykład:
window.setTimeout(function() { completion(); }, 5000);
Jeśli skrypt JavaScript przekroczy limit czasu, skrót nie zostanie wykonany do końca, a próba jego uruchomienia spowoduje wyświetlenie komunikatu o błędzie przekroczenia limitu czasu JavaScript.
Obsługa błędów składni i działania
Do pisania kodu JavaScript w czynności Uruchom JavaScript na stronie www możesz używać dowolnej składni obsługiwanej w Safari. Systemy iOS 13 oraz iPadOS obsługują składnię JavaScript ECMA 6, w tym pętle for of
oraz polecenie let
.
Czynność Uruchom JavaScript na stronie www w aplikacji Skróty pomaga wykrywać błędy, przeprowadzając podstawowe sprawdzanie składni przed uruchomieniem skrótu z rozszerzenia Safari.
W miarę wprowadzania skryptu w polu tekstowym elementy składni są wyróżniane, co gwarantuje, że składnia JavaScript jest poprawna. Jeśli na przykład zapomnisz cudzysłowu na końcu ciągu znaków, tekst następujący po tym ciągu jest wyróżniany.
Jeśli składnia skryptu jest poprawna, ale zawiera błąd działania, czynność Uruchom JavaScript na stronie www przechwytuje i wyświetla wyjątki. Jeśli na przykład skrypt odwołuje się do nieistniejącej zmiennej lub funkcji (na przykład shortcuts.completion()
), po jego uruchomieniu wyświetlany jest błąd.
Prywatność i ochrona
Skrót, któremu pozwalasz na uruchomienie skryptu JavaScript na stronie www, ma dostęp do wszystkich informacji zawartych na tej stronie, w tym także poufnych. Aplikacja Skróty stosuje kilka metod ochrony Twojego bezpieczeństwa i prywatności podczas uruchamiania skrótów JavaScript.
Po uruchomieniu skrótu zawierającego czynność Uruchom JavaScript na stronie www aplikacja wyświetla komunikat informujący o tym, że skrót wejdzie w interakcję ze stroną www. Oznacza to, że skrót może uzyskać dostęp do danych poufnych ze strony www, na przykład haseł, numerów telefonów lub numerów kart kredytowych.
Gdy stukniesz w Pozwól, skrót zostanie uruchomiony na określonej stronie www. Ponowna próba uruchomienia skrótu na tej samej stronie www nie powoduje wyświetlenia tego pytania. Zgoda na uruchomienie jest zapamiętywana osobno dla każdej kombinacji skrótu i strony www.
Gdy już zezwolisz na uruchomienie skrótu na stronie www, aplikacja Skróty regularnie pobiera uaktualnione definicje złośliwego oprogramowania, aby lepiej chronić Cię przed potencjalnie złośliwymi skryptami. Przed rozpoczęciem interakcji ze stroną aplikacja Skróty analizuje skrypt JavaScript, a następnie sprawdza go przy użyciu pobranych definicji szkodliwego oprogramowania. Na podstawie wyników tej oceny aplikacja Skróty może zezwolić na uruchomienie skrótu, odmówić uruchomienia go albo wyświetlić dodatkowe zapytanie.
Ocena jest przeprowadzana na urządzeniu — zawartość skryptu JavaScript (wprowadzona w polu tekstowym czynności Uruchom JavaScript na stronie www) nie jest wysyłana na serwer zewnętrzny.
Jeśli zgoda na uruchomienie skrótu nie zostanie udzielona, pojawi się komunikat o błędzie zawierający odpowiednie wyjaśnienie.
Ważne: Nigdy nie uruchamiaj niezaufanych skrótów zawierających kod JavaScript.