Pengenalan kepada tindakan Jalankan JavaScript pada Halaman Web dalam Pintasan
Hampir semua halaman web diskripkan menggunakan JavaScript, bahasa pengaturcaraan yang mencipta kesan dinamik dalam pelayar web, termasuk animasi, menu interaktif, main balik video dan banyak lagi. Secara umum, JavaScript tidak terdedah kepada anda semasa anda melihat tapak web. Namun begitu, dengan membina pintasan yang mengandungi tindakan Jalankan JavaScript pada Halaman Web dan kemudian menjalankan pintasan daripada app Safari, anda boleh mengawal JavaScript halaman web.
Pintasan yang menjalankan JavaScript tersuai anda pada halaman web mempunyai pelbagai kegunaan. Contohnya, anda boleh mencipta pintasan yang mendapatkan data khusus daripada halaman web dan kemudian menggabungkan data tersebut dalam tugas, seperti mengekstrak jadual kelas dan kemudian menambahnya ke app Kalendar, atau mengeksport data ahli kumpulan media sosial dan kemudian menambah data tersebut ke hamparan.
Anda juga boleh mencipta pintasan yang membenarkan anda mengubah suai halaman web, seperti menukar fon teks halaman web atau mengubah suai kelajuan video dimainkan balik.
Untuk mendapatkan maklumat tentang menggunakan pintasan yang menjalankan JavaScript pada halaman web, lihat Gunakan tindakan Jalankan JavaScript pada Halaman Web dalam Pintasan.
Perihal mengambil data halaman web
Tindakan Jalankan JavaScript pada Halaman Web membolehkan anda mengambil data daripada halaman web dengan mengambil semua elemen yang sepadan dengan kriteria tertentu, kemudian mengulang elemen untuk menjalankan tugas dengan data (atau untuk memeriksa elemen dengan lebih lanjut).
Contohnya, untuk mencipta senarai setiap elemen imej pada halaman web, gunakan:
var elements = document.querySelectorAll("img");
Dalam contoh lain, untuk mengambil setiap elemen dengan kelas “siaran”, gunakan:
var elements = document.querySelectorAll(".post");
Sebaik sahaja NodeList dicipta, anda boleh mengulang elemen (untuk menapis lagi elemen atau menambahkan elemen ke struktur data) menggunakan sesuatu seperti:
var elements = ...;
for (let element of elements) {
// ...
}
Untuk mendapatkan maklumat lanjut tentang meminta hasil halaman web, lihat https://developer.mozilla.org/Selectors dan https://developer.mozilla.org/SelectorAll.
Input tindakan Jalankan JavaScript pada Halaman Web
Input untuk tindakan Jalankan JavaScript pada Halaman Web mestilah halaman web Safari aktif, yang bermakna anda mesti menjalankan pintasan daripada helaian kongsi (khususnya daripada Safari, SFSafariViewController, atau ASWebAuthenticationSession).
Apabila pintasan dijalankan daripada helaian kongsi, input daripada app Safari diserahkan ke dalam tindakan pertama pintasan anda.
Walaupun input untuk tindakan Jalankan JavaScript pada Halaman Web mesti halaman web Safari, anda boleh memasukkan data tambahan ke dalam tindakan dengan menggunakan Pemboleh Ubah Pintar. Contohnya, pintasan berikut mengandungi tindakan Jalankan JavaScript pada Halaman Web yang mengubah suai video pada halaman web. Kadar main balik video dikawal oleh pemboleh ubah Kelajuan.
Petua: Pintasan Tukar Kelajuan Video tersedia dalam Galeri.
Untuk mendapatkan maklumat tentang menjalankan pintasan daripada Safari, lihat Jalankan pintasan dalam app lain.
Output tindakan Jalankan JavaScript pada Halaman Web
Untuk memulangkan data, anda mesti memanggil pengendali pelengkapan dalam JavaScript, seperti completion(result)
. Disebabkan JavaScript sering digunakan dengan corak tak segerak, panggilan adalah tak segerak. Dengan cara ini, anda boleh melengkapkan tindakan secara tak segerak. Contohnya, yang berikut adalah sah:
window.setTimeout(function() {
completion(true);
}, 1000);
Output tindakan Jalankan JavaScript pada Halaman Web ialah sebarang jenis data JSON, termasuk:
Rentetan
Nombor
Boolean (benar atau palsu)
Tatasusunan (mengandungi sebarang jenis JSON sah yang lain)
Kamus (mengandungi sebarang jenis JSON sah yang lain)
Nol
Tidak Ditentukan
Di sebalik tabir, Pintasan mengekod dan menyahkod nilai anda yang dipulangkan secara automatik untuk berkomunikasi antara JavaScript dan app Pintasan. Ini bermakna anda tidak perlu memanggil JSON.stringify(result)
sebelum memanggil pengendali pelengkapan.
Disebabkan nilai pulangan ialah JSON, nilai pulangan tertentu tidak akan berfungsi dengan baik. Contohnya, fungsi atau Nod tidak mempunyai perwakilan dikodkan JSON yang berguna. Dalam kes ini, anda disyorkan untuk mencipta Tatasusunan/Kamus yang mengandungi nilai serasi dengan JSON yang anda perlukan.
Nota: Disebabkan objek dalam JavaScript hanyalah kamus, objek asas bertukar kepada JSON dengan baik.
Jika anda tidak mahu mengembalikan sebarang data daripada tindakan Jalankan JavaScript pada Halaman Web, anda boleh memanggil completion()
tanpa argumen dalam fungsi (kerana undefined
ialah output yang sah). Ini serupa dengan memanggil completion(undefined)
.
Untuk mendapatkan maklumat lanjut tentang JSON, lihat Pengenalan kepada penggunaan JSON dalam Pintasan.
Untuk mendapatkan maklumat lanjut tentang Nod, lihat https://developer.mozilla.org/Node.
Untuk mendapatkan maklumat lanjut tentang fungsi, lihat https://developer.mozilla.org/Functions.
Had masa tindakan Jalankan JavaScript pada Halaman Web
Seperti semua sambungan JavaScript dalam Safari, tindakan Jalankan JavaScript pada Halaman Web tertakluk pada had masa dan perlu dilengkapkan secepat mungkin. JavaScript yang menggunakan fungsi segerak mungkin tidak sempat dilengkapkan, termasuk:
window.alert()
window.prompt()
window.confirm()
Tamat masa yang bertahan selama beberapa saat—contohnya:
window.setTimeout(function() { completion(); }, 5000);
Jika JavaScript anda melebihi had masa, pintasan akan gagal dilengkapkan dan mesej ralat JavaScript Tamat Masa akan muncul apabila anda menjalankan pintasan.
Pengendalian Sintaks dan Ralat Masa Jalanan
Anda boleh menggunakan sintaks yang disokong dalam Safari untuk menulis JavaScript dalam tindakan Jalankan JavaScript pada Halaman Web. iOS 13 menyokong sintaks ECMA 6 JavaScript, termasuk gelung for of
dan let
.
Dalam app Pintasan, tindakan Jalankan JavaScript pada Halaman Web membantu anda mencari ralat dengan melakukan semakan sintaks asas sebelum anda menjalankan pintasan daripada sambungan Safari.
Semasa anda memasukkan skrip anda dalam medan teks, penyerlahan sintaks membantu memastikan JavaSript anda sah. Contohnya, jika anda terlupa untuk menyertakan tanda petikan di akhir rentetan, semua teks selepas rentetan diserlahkan.
Jika sintaks skrip anda sah tetapi mengandungi ralat masa jalanan, tindakan Jalankan JavaScript pada Halaman Web mendapatkan dan memaparkan pengecualian. Contohnya, jika skrip anda merujuk pemboleh ubah atau fungsi yang tidak wujud (seperti shortcuts.completion()
), ralat dipaparkan pada masa jalanan.
Privasi dan Keselamatan
Apabila anda membenarkan pintasan untuk menjalankan Javascript pada halaman web, pintasan boleh mengakses semua maklumat pada halaman web—termasuk data yang berpotensi sensitif. App Pintasan mengambil beberapa langkah untuk memastikan anda menjalankan pintasan JavaScript anda dengan selamat dan secara peribadi.
Apabila anda menjalankan pintasan yang mengandungi tindakan Jalankan JavaScript pada Halaman Web, gesaan dipaparkan yang memaklumkan anda bahawa pintasan akan berinteraksi dengan halaman web. Ini bermakna pintasan boleh mengakses data yang berpotensi sensitif daripada halaman web, seperti kata laluan, nombor telefon, atau maklumat kad kredit.
Apabila anda mengetik Benarkan, pintasan dijalankan pada halaman web yang ditentukan. Jika anda menjalankan pintasan yang sama pada halaman web yang sama lagi, Pintasan tidak menunjukkan gesaan lagi. Keizinan ini berkekalan berasaskan setiap pintasan dan setiap halaman web.
Selepas anda diberi akses pintasan ke halaman web, Pintasan mengambil langkah tambahan untuk melindungi anda daripada skrip yang berpotensi hasad dengan memuat turun definisi perisian hasad dikemas kini secara berkala. Sebelum berinteraksi dengan halaman web, Pintasan menganalisis JavaScript, kemudian merujuk definisi perisian hasad. Berdasarkan penilaian ini, Pintasan diarahkan untuk membenarkan skrip, menolak skrip, atau memaparkan gesaan tambahan sebelum membenarkan pintasan dijalankan.
Penilaian ini dilakukan pada peranti anda—kandungan JavaScript anda (dalam medan teks Jalankan JavaScript pada Halaman Web)—tidak dihantar ke pelayan luaran untuk analisis.
Jika pintasan dihalang daripada dijalankan, mesej ralat dengan penjelasan dipaparkan.
Penting: Jangan sesekali menjalankan pintasan mengandungi JavaScript yang anda tidak percayai.