Wprowadzenie do czynności Uruchom JavaScript na stronie www w aplikacji Skróty na Macu
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. Uruchamianie skryptów JavaScript ze skrótów wymaga zmiany określonego ustawienia. Zobacz: Zaawansowane ustawienia prywatności i ochrony w aplikacji Skróty na Macu.
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 na Macu.
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. Na przykład, dostępny w Galerii skrót Zmień szybkość wideo zawiera czynność uruchom JavaScript na stronie www modyfikującą wideo na danej stronie. Szybkość odtwarzania wideo jest kontrolowana przy użyciu zmiennej Szybkość.
Aby uzyskać informacje na temat uruchamiania skrótów z Safari, zobacz: Uruchamianie skrótu podczas pracy na Macu.
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 na Macu.
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.
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.