Giới thiệu về tác vụ Chạy JavaScript trên trang web trong Phím tắt trên iPhone hoặc iPad
Gần như tất cả các trang web đều được viết bằng JavaScript, một ngôn ngữ lập trình tạo ra các hiệu ứng động trong trình duyệt web, bao gồm hình động, menu tương tác, phát lại video, v.v. Nói chung, JavaScript không được hiển thị khi bạn xem trang web. Tuy nhiên, bằng cách xây dựng một phím tắt chứa tác vụ Chạy JavaScript trên trang web và sau đó chạy phím tắt từ ứng dụng Safari, bạn có thể điều khiển JavaScript của trang web.
Các phím tắt chạy JavaScript tùy chỉnh trên trang web có rất nhiều công dụng. Ví dụ: bạn có thể tạo các phím tắt truy xuất dữ liệu cụ thể từ trang web và sau đó kết hợp dữ liệu đó trong một nhiệm vụ, ví dụ như trích xuất thời khóa biểu của lớp và sau đó thêm vào ứng dụng Lịch hoặc xuất dữ liệu thành viên của một nhóm phương tiện xã hội và sau đó thêm dữ liệu đó vào một bảng tính.
Bạn cũng có thể tạo các phím tắt cho phép bạn sửa đổi trang web, ví dụ như thay đổi phông chữ của văn bản trang web hoặc sửa đổi tốc độ phát lại video. Trước khi có thể chạy JavaScript từ một phím tắt, bạn phải bật cài đặt. Xem Cài đặt bảo mật và quyền riêng tư nâng cao trong Phím tắt trên iPhone hoặc iPad.
Để biết thông tin về việc sử dụng các phím tắt chạy JavaScript trên trang web, hãy xem Sử dụng tác vụ Chạy JavaScript trên trang web trong Phím tắt trên iPhone hoặc iPad.
Giới thiệu về truy xuất dữ liệu trang web
Tác vụ Chạy JavaScript trên trang web cho phép bạn truy xuất dữ liệu từ trang web bằng cách lấy tất cả các thành phần phù hợp với các tiêu chí nhất định, sau đó lặp lại qua những thành phần đó để thực hiện một nhiệm vụ với dữ liệu (hoặc để kiểm tra thêm các thành phần).
Ví dụ: để tạo một danh sách gồm mọi thành phần hình ảnh trên trang web, hãy sử dụng:
var elements = document.querySelectorAll("img");
Trong một ví dụ khác, để truy xuất mọi thành phần có lớp “post”, hãy sử dụng:
var elements = document.querySelectorAll(".post");
Khi NodeList được tạo, bạn có thể lặp lại qua các thành phần (để lọc thêm các thành phần hoặc thêm các thành phần vào cấu trúc dữ liệu) bằng câu lệnh như sau:
var elements = ...;
for (let element of elements) {
// ...
}
Để biết thêm thông tin về việc truy vấn các kết quả trang web, hãy xem https://developer.mozilla.org/Selectors và https://developer.mozilla.org/SelectorAll.
Đầu vào của tác vụ Chạy JavaScript trên trang web
Đầu vào của tác vụ Chạy JavaScript trên trang web phải là một trang web Safari đang hoạt động, nghĩa là bạn phải chạy phím tắt từ bảng chia sẻ (cụ thể là từ Safari, SFSafariViewController hoặc ASWebAuthenticationSession).
Khi phím tắt được chạy từ bảng chia sẻ, đầu vào từ ứng dụng Safari được chuyển vào tác vụ đầu tiên của phím tắt.
Mặc dù đầu vào của tác vụ Chạy JavaScript trên trang web phải là trang web Safari, nhưng bạn có thể chèn dữ liệu bổ sung vào tác vụ bằng cách sử dụng Biến ma thuật. Ví dụ: phím tắt Thay đổi tốc độ video (có sẵn trong Bộ sưu tập) chứa tác vụ Chạy JavaScript trên trang web có khả năng sửa đổi video trên trang web. Tốc độ phát lại của video được điều khiển bằng biến Tốc độ.
Để biết thông tin về cách chạy các phím tắt từ Safari, hãy xem Khởi chạy phím tắt từ một ứng dụng khác trên iPhone hoặc iPad.
Đầu ra của tác vụ Chạy JavaScript trên trang web
Để trả về dữ liệu, bạn phải gọi bộ xử lý hoàn thành trong JavaScript, ví dụ như completion(result)
. Vì JavaScript thường được sử dụng theo mô hình không đồng bộ nên chức năng gọi cũng không đồng bộ một cách có chủ định. Bằng cách này, bạn có thể hoàn thành tác vụ không đồng bộ. Ví dụ: câu lệnh sau là hợp lệ:
window.setTimeout(function() {
completion(true);
}, 1000);
Đầu ra của tác vụ Chạy JavaScript trên trang web là bất kỳ loại dữ liệu JSON hợp lệ nào, bao gồm:
Chuỗi
Số
Boolean (đúng hoặc sai)
Dãy (chứa bất kỳ loại JSON hợp lệ nào khác)
Từ điển (chứa bất kỳ loại JSON hợp lệ nào khác)
Rỗng
Không xác định
Ở phía sau, Phím tắt tự động mã hóa và giải mã giá trị được trả về của bạn để giao tiếp giữa JavaScript và ứng dụng Phím tắt. Điều này nghĩa là bạn không cần gọi JSON.stringify(result)
trước khi gọi bộ xử lý hoàn thành.
Vì giá trị trả về là JSON nên các giá trị trả về nhất định sẽ không hoạt động tốt. Ví dụ: một hàm hoặc Node sẽ không có phần biểu thị được mã hóa JSON hữu ích. Trong trường hợp này, bạn nên tạo một Dãy/Từ điển chứa các giá trị tương thích với JSON mà bạn cần.
Ghi chú: Vì đối tượng trong JavaScript chỉ là một từ điển nên các đối tượng cơ bản chuyển đổi tốt thành JSON.
Nếu bạn không muốn trả về bất kỳ dữ liệu nào từ tác vụ Chạy JavaScript trên trang web, bạn có thể gọi completion()
mà không có đối số trong hàm (vì undefined
là một đầu ra hợp lệ). Việc này hoàn toàn giống với gọi completion(undefined)
.
Để biết thêm thông tin về JSON, hãy xem Giới thiệu về sử dụng JSON trong phím tắt trên iPhone và iPad.
Để biết thêm thông tin về các Node, hãy xem https://developer.mozilla.org/Node.
Để biết thêm thông tin về các hàm, hãy xem https://developer.mozilla.org/Functions.
Giới hạn thời gian của tác vụ Chạy JavaScript trên trang web
Giống như tất cả các phần mở rộng JavaScript trong Safari, tác vụ Chạy JavaScript trên trang web phải tuần theo giới hạn thời gian và phải được hoàn thành nhanh nhất có thể. JavaScript sử dụng các hàm đồng bộ có thể không hoàn thành đúng thời gian, bao gồm:
window.alert()
window.alert()
window.confirm()
Thời gian chờ kéo dài nhiều giây – ví dụ:
window.setTimeout(function() { completion(); }, 5000);
Nếu JavaScript của bạn vượt quá giới hạn thời gian, phím tắt sẽ không thể hoàn thành và thông báo lỗi JavaScript hết thời gian sẽ xuất hiện khi bạn chạy phím tắt.
Xử lý lỗi cú pháp và thời gian chạy
Bạn có thể sử dụng bất kỳ cú pháp nào được hỗ trợ trong Safari để viết JavaScript trong tác vụ Chạy JavaScript trên trang web.
Trong ứng dụng Phím tắt, tác vụ Chạy JavaScript trên trang web giúp bạn xác định lỗi bằng cách thực hiện việc kiểm tra cú pháp cơ bản trước khi chạy phím tắt từ phần mở rộng Safari.
Sau khi bạn nhập tập lệnh trong trường văn bản, việc tô sáng cú pháp giúp đảm bảo rằng JavaScript của bạn hợp lệ. Ví dụ: nếu bạn quên dấu ngoặc kép ở cuối một chuỗi, tất cả các văn bản đứng sau chuỗi đó được tô sáng.
Nếu cú pháp tập lệnh của bạn hợp lệ nhưng có lỗi thời gian chạy, tác vụ Chạy JavaScript trên trang web ghi lại và hiển thị các ngoại lệ. Ví dụ: nếu tập lệnh của bạn tham chiếu đến một biến hoặc hàm không tồn tại (ví dụ như shortcuts.completion()
), một lỗi được hiển thị trong khi chạy.