Czynność 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 surfujących w sieci. 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 Facebooka 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 stronę www aktywną w Safari, co oznacza, że skrót musisz uruchamiać przy użyciu rozszerzenia czynności Skrótów w arkuszu udostępniania (w szczególności z Safari, SFSafariViewController lub 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.
Jeśli czynność Uruchom JavaScript na stronie www nie jest pierwszą czynnością w skrócie, po uruchomieniu skrótu pojawi się komunikat o błędzie.
Aby rozwiązać ten problem, możesz dodać czynność Pobierz zmienną i ustawić jako jej parametr stronę www w Safari, której zawartość ma zostać przekazana do czynności Uruchom JavaScript na stronie www.
Aby uzyskać informacje na temat uruchamiania skrótów z Safari, zobacz: Konfigurowanie oraz uruchamianie skrótów z 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
Aby uzyskać więcej informacji na temat JSON, zobacz: Używanie danych w formacie JSON w aplikacji Skróty.
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.
Aby uzyskać więcej informacji na temat obiektów Node, zobacz: https://developer.mozilla.org/Node. Aby by uzyskać więcej informacji na temat funkcji, zobacz: https://developer.mozilla.org/Functions.
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)
.
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. System iOS 12 obsługuje składnię JavaScript ECMA 6, w tym pętle for of
i 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 telefonu 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.