Використання дії «Виконати JavaScript на веб-сторінці» у Швидких командах на iPhone або iPad
Дія «Виконати JavaScript на веб-сторінці» можна використовувати для отримання потрібних даних з веб-сторінки або для модифікації вмісту веб-сторінки.
Дія «Виконати JavaScript на веб-сторінці» містить текстове поле, в яке Ви можете ввести довільний скрипт. Виконання цієї швидкої команди запускається із програми Safari. Щоб виконати JavaScript із швидкої команди, необхідно ввімкнути налаштування «Запуск скриптів». Див. Додаткові налаштування конфіденційності та безпеки у Швидких командах на iPhone та iPad.
Примітка. Також можна використовувати дію «Виконати JavaScript на веб-сторінці» в SFSafariViewController. Детальніше див. на веб-сторінці https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller.
Створення швидкої команди JavaScript
- У програмі "Швидкі команди" на пристрої iOS або iPadOS торкніться правому верхньому куті екрана.
- У редакторі швидкої команди торкніться поля пошуку внизу екрана, почніть вводити «Виконати JavaScript…» у полі пошуку, потім торкніться дії «Виконати JavaScript на веб-сторінці», щоб додати його до редактора швидкої команди.
- Введіть текст свого скрипта в текстове поле всередині дії «Виконати JavaScript на веб-сторінці».
Важливо! Обов'язково додайте виклик обробника завершення у свій скрипт. Для отримання додаткових відомостей див. у розділі Вихідні дані для дії «Виконати JavaScript на веб-сторінці».
Порада. Щоб використати кілька дій «Виконати JavaScript на веб-сторінці» в одній швидкій команді, переконайтеся, що кожен екземпляр цієї дії отримує веб-сторінку Safari як вхідні дані.
Запуск швидкої команди JavaScript на веб-сторінці
- У Safari на пристрої iOS або iPadOS торкніться піктограми .
- Торкніться швидкої команди, що містить дію «Виконати JavaScript на веб-сторінці».
Дія «Виконати JavaScript на веб-сторінці» у Швидких командах на iPhone або iPad
Майже на всіх веб-сторінках використовується JavaScript — мова програмування, яка дозволяє створювати динамічні ефекти у веб-браузерах, включаючи анімації, інтерактивні меню, відтворення відео тощо. Зазвичай код JavaScript не відображається на екрані під час перегляду веб-сайтів. JavaScript на веб-сторінці» та запустивши цю команду із програми Safari, можна керувати кодом JavaScript на веб-сторінку.
Швидкі команди, які запускають код користувача JavaScript на веб-сторінці, дуже широко використовуються. експортувати список членів групи до соціальної мережі та вставити ці дані в електронну таблицю.
Також можна створити швидкі команди, які дають змогу модифікувати веб-сторінку, наприклад, змінювати шрифт тексту або швидкість відтворення відео на ній.Додаткові налаштування конфіденційності та безпеки у Швидких командах на iPhone та iPad.
Інформацію про використання швидких команд, які виконують JavaScript на веб-сторінці, див. у розділі Використання дії «Виконати JavaScript на веб-сторінці» у Швидких командах на iPhone або iPad.
Про отримання даних із веб-сторінок
Дія «Виконати код JavaScript на веб-сторінці» дозволяє отримувати дані з веб-сторінки, захоплюючи всі елементи, які відповідають певним критеріям, а потім обробляючи ці елементи відповідно до завдання (або передаючи їх далі).
Наприклад, щоб створити список усіх зображень на веб-сторінці, використовуйте код:
var elements = document.querySelectorAll("img");
В іншому прикладі, щоб отримати всі об'єкти класу «post», використовуйте код:
var elements = document.querySelectorAll(".post");
Після створення списку NodeList можна переходити між його елементами (для додаткового відбору елементів або додавання їх до структури даних) за допомогою наступного коду:
Вхідні дані для дії «Виконати JavaScript на веб-сторінці»
Дію «Виконати JavaScript на веб-сторінці» в якості вхідних даних повинна передаватися активна веб-сторінка Safari. Цю швидку команду потрібно зі сторінки експорту (зокрема, з Safari, SFSafariViewController або ASWebAuthenticationSession).
Коли швидка команда запускається зі сторінки експорту, вхідні дані із програми Safari передаються в першу дію Вашої швидкої команди.
Хоча вхідні дані для дії «Виконати код JavaScript на веб-сторінці» повинні являти собою веб-сторінку Safari, можна вставити до дії додаткові дані, використовуючи чарівні змінні.Наприклад, швидка команда Змінити швидкість відео (доступна в Галереї) містить дію «Запустити JavaScript на веб-сторінці», яка змінює відео на веб-сторінці. Швидкість відтворення відео контролюється змінною Speed.
Інформацію про запуск швидких команд із Safari див. у розділі Запуск швидкої команди з іншої програми на iPhone або iPad.
Вихідні дані для дії «Виконати JavaScript на веб-сторінці»
Щоб отримати дані в результаті, потрібно викликати обробник завершення JavaScript, наприклад completion(result) . Оскільки JavaScript зазвичай використовується з асинхронними шаблонами, виклик також є асинхронним. Це дозволяє несинхронно завершити дію. Приклад коду:
Вихідні дані для дії «Виконати JavaScript на веб-сторінці» можуть бути будь-яким типом даних JSON, у тому числі:
- рядок String
- число Number
- логічне значення (істина чи брехня)
- масив Array (який містить будь-який інший тип JSON)
- словник (який містить інший тип JSON)
- нульове значення (null)
- невизначене значення (undefined)
Програма «Швидкі команди» автоматично кодує та декодує значення, що повертається для забезпечення коректної передачі даних між JavaScript та програмою «Швидкі команди». Це означає, що перед викликом обробника завершення Вам не потрібно виконувати виклик JSON.stringify(result).
Оскільки повернене значення є типом даних JSON, деякі повернені значення можуть не працювати. Наприклад, функція або вузол Node під час кодування в JSON можуть не дати хорошого результату. У такому випадку рекомендується створити масив або словник, який містить потрібні значення, сумісні з JSON.
Примітка. Об'єкт JavaScript є просто словником, тому базові об'єкти добре конвертуються в типи даних JSON.
Якщо не потрібно повертати жодні дані від дії «Виконати код JavaScript на веб-сторінці», можна викликати completion() без аргументу функції (оскільки підтримуються вихідні дані типу undefined ). Це аналогічно виклику функції completion(undefined).
Обмеження часу для дії «Виконати код JavaScript на веб-сторінці»
Як і будь-яке інше розширення JavaScript для Safari, дія «Виконати код JavaScript на веб-сторінці» має обмеження за часом і має бути завершена якнайшвидше. Код JavaScript, який використовує синхронні функції, може не завершитися вчасно. Приклади синхронних функцій:
- window.alert()
- window.prompt()
- window.confirm()
- Час очікування тривалістю кілька секунд — наприклад: window.setTimeout(function() < completion(); >, 5000);
Якщо Ваш код JavaScript перевищить допустимий час очікування, швидку команду не вдасться завершити, і під час її виконання з'явиться повідомлення про помилку «Минув час очікування JavaScript».
Обробка синтаксичних помилок та помилок під час виконання
Для написання JavaScript у дії «Виконати JavaScript на веб-сторінці» можна використовувати будь-який синтаксис, який підтримується в Safari.
У програмі «Швидкі команди» дія «Виконати JavaScript на веб-сторінці» дозволяє перевірити синтаксис, щоб виявити грубі помилки ще до запуску швидкої команди з розширення Safari.
При введенні скрипту в текстове поле синтаксичні підказки допомагають переконатися, що JavaScript не має помилок. Наприклад, якщо не вистачає лапок в кінці рядка, весь наступний текст після цього рядка буде виділено.
Якщо синтаксис скрипта правильний, але виникає помилка під час виконання, дія «Виконати JavaScript на веб-сторінці» визначає і показує винятки. Наприклад, якщо в скрипті вказано неіснуючу змінну або функцію (таку як shortcuts.completion() ), при виконанні з'явиться помилка.