![](https://help.apple.com/assets/5C8ADDC1680CE21E4EE5E0AC/5C8ADDC9680CE21E4EE5E0B5/id_ID/c10e8a839dc838a25d0feb0e9e428a0a.png)
Pengantar tindakan Jalankan JavaScript di Halaman Web di Pintasan
Hampir semua halaman web dibuat skrip menggunakan JavaScript, bahasa pemrograman yang membuat efek dinamis di browser web, termasuk animasi, menu interaktif, pemutaran video, dan lainnya. Pada umumnya, JavaScript tidak ditampilkan kepada Anda saat Anda melihat situs web. Namun, dengan membuat pintasan yang berisi tindakan Jalankan JavaScript di Halaman Web, lalu menjalankan pintasan dari app Safari, Anda dapat mengontrol JavaScript halaman web.
Pintasan yang menjalankan JavaScript khusus Anda di halaman web memiliki banyak kegunaan. Misalnya, Anda dapat membuat pintasan yang mengambil data tertentu dari halaman web, lalu menggabungkan data tersebut ke dalam tugas, seperti mengekstrak jadwal kelas, lalu menambahkannya ke app Kalender, atau mengekspor data anggota grup media sosial, lalu menambahkannya ke spreadsheet.
Anda juga dapat membuat pintasan yang memungkinkan Anda untuk memodifikasi halaman web, seperti mengubah font teks halaman web atau memodifikasi kecepatan pemutaran video.
Untuk informasi mengenai cara menggunakan pintasan yang menjalankan JavaScript di halaman web, lihat Menggunakan tindakan Jalankan JavaScript di Halaman Web di Pintasan.
Mengenai cara mengambil data halaman web
Tindakan Jalankan JavaScript di Halaman Web memungkinkan Anda untuk mengambil data dari halaman web dengan mengambil semua elemen yang cocok dengan kriteria tertentu, lalu memproses ulang elemen tersebut untuk menjalankan tugas dengan data (atau untuk menginspeksi elemen lebih jauh).
Misalnya, untuk membuat daftar setiap elemen gambar di halaman web, gunakan:
var elements = document.querySelectorAll("img");
Pada contoh lain, untuk mengambil setiap elemen dengan kelas “postingan”, gunakan:
var elements = document.querySelectorAll(".post");
Setelah NodeList dibuat, Anda dapat memproses ulang elemen (untuk memfilter elemen lebih jauh atau menambahkan elemen ke struktur data) menggunakan sesuatu seperti:
var elements = ...;
for (let element of elements) {
// ...
}
Untuk informasi lainnya mengenai cara meminta hasil halaman web https://developer.mozilla.org/Selectors dan https://developer.mozilla.org/SelectorAll.
Input tindakan Jalankan JavaScript di Halaman Web
Input untuk tindakan Jalankan JavaScript di Halaman Web harus merupakan halaman web Safari yang aktif, yang berarti Anda harus menjalankan pintasan dari lembar berbagi (khususnya dari Safari, SFSafariViewController, atau ASWebAuthenticationSession).
Saat pintasan dijalankan dari lembar berbagi, input dari app Safari diteruskan ke tindakan pertama pintasan Anda.
Meskipun input untuk tindakan Jalankan JavaScript di Halaman Web harus berupa halaman web Safari, Anda dapat menyisipkan data tambahan ke tindakan dengan menggunakan Variabel Magic. Misalnya, pintasan berikut berisi tindakan Jalankan JavaScript di Halaman Web yang memodifikasi video di halaman web. Laju pemutaran video dikontrol oleh variabel Kecepatan.
![Editor pintasan menampilkan tindakan Jalankan JavaScript di Halaman Web yang berisi Variabel Magic.](https://help.apple.com/assets/5C8ADDC1680CE21E4EE5E0AC/5C8ADDC9680CE21E4EE5E0B5/id_ID/d83ebae4d10c2739b427e9fda58a807e.png)
Kiat: Pintasan Ubah Kecepatan Video tersedia di Galeri.
Untuk informasi mengenai cara menjalankan pintasan dari Safari, lihat Menjalankan pintasan dari app lain.
Output tindakan Jalankan JavaScript di Halaman Web
Untuk mengembalikan data, Anda harus merujuk ke pengendali penyelesaian di JavaScript, seperti completion(result)
. Karena JavaScript biasanya digunakan dengan pola asinkron, perujukan sengaja dibuat tidak sinkron. Dengan demikian, Anda dapat menyelesaikan tindakan dengan cara asinkron. Misalnya, yang berikut ini sah:
window.setTimeout(function() {
completion(true);
}, 1000);
Output tindakan Jalankan JavaScript di Halaman Web adalah jenis data JSON apa pun yang sah, meliputi:
String
Nomor
Boolean (benar atau salah)
Larik (berisi jenis JSON lainnya yang sah)
Kamus (berisi jenis JSON lainnya yang sah)
Null
Tidak Ditetapkan
Di latar belakang, Pintasan secara otomatis mengodekan dan mendekode nilai Anda yang dikembalikan untuk komunikasi antara JavaScript dan app Pintasan. Ini berarti Anda tidak perlu merujuk pada JSON.stringify(result)
sebelum merujuk pada pengendali penyelesaian.
Karena nilai balik merupakan JSON, nilai balik tertentu tidak akan berfungsi dengan baik. Misalnya, fungsi atau Node tidak akan memiliki representasi yang dikodekan JSON yang bermanfaat. Dalam kasus ini, Anda dianjurkan untuk membuat Larik/Kamus yang berisi nilai yang kompatibel dengan JSON yang Anda perlukan.
Catatan: Karena objek di JavaScript hanya sekadar kamus, objek dasar dapat dikonversi ke JSON dengan baik.
Jika Anda tidak ingin mengembalikan data apa pun dari tindakan Jalankan JavaScript di Halaman Web, Anda dapat merujuk ke completion()
tanpa argumen di fungsi (karena tidak ditetapkan
merupakan output yang sah). Ini serupa dengan perujukan ke completion(undefined)
.
Untuk informasi lainnya mengenai JSON, lihat Pengantar cara menggunakan JSON di Pintasan.
Untuk informasi lainnya mengenai Nodes, lihat https://developer.mozilla.org/Node.
Untuk informasi lainnya mengenai function, lihat https://developer.mozilla.org/Functions.
Batas waktu input tindakan Jalankan JavaScript di Halaman Web
Seperti semua ekstensi JavaScript di Safari, tindakan Jalankan JavaScript di Halaman Web terikat pada batas waktu dan harus diselesaikan secepat mungkin. JavaScript yang menggunakan fungsi sinkron mungkin tidak selesai tepat waktu, termasuk:
window.alert()
window.prompt()
window.confirm()
Batas waktu selama beberapa detik—misalnya:
window.setTimeout(function() { completion(); }, 5000);
Jika JavaScript Anda melebihi batas waktu, pintasan akan gagal diselesaikan dan pesan kesalahan Waktu JavaScript Habis akan muncul saat Anda menjalankan pintasan.
![Editor pintasan menampilkan pesan kesalahan Waktu JavaScript Habis.](https://help.apple.com/assets/5C8ADDC1680CE21E4EE5E0AC/5C8ADDC9680CE21E4EE5E0B5/id_ID/33465ed45c595713cbaaefa7a96e39fa.png)
Penanganan Kesalahan Sintaksis dan Runtime
Anda dapat menggunakan sintaksis mana pun yang didukung di Safari untuk menulis JavaScript di tindakan Jalankan JavaScript di Halaman Web. iOS 13 dan iPadOS mendukung sintaksis JavaScript ECMA 6, termasuk loop for of
dan let
.
Di app Pintasan, tindakan Jalankan JavaScript di Halaman Web membantu Anda mendeteksi kesalahan dengan menjalankan pemeriksaan sintaksis dasar sebelum Anda menjalankan pintasan dari ekstensi Safari.
Saat Anda memasukkan skrip di bidang teks, penyorotan sintaksis membantu memastikan bahwa JavaScript Anda sah. Misalnya, jika Anda lupa menyertakan tanda kutip di akhir string, semua teks setelah string tersebut akan disoroti.
Jika sintaksis skrip Anda sah tapi berisi kesalahan runtime, tindakan Jalankan JavaScript di Halaman Web akan mendeteksi dan menampilkan pengecualian. Misalnya, jika skrip Anda memiliki referensi variabel atau fungsi yang tidak ada (seperti shortcuts.completion()
), kesalahan akan ditampilkan di runtime.
![Editor pintasan menampilkan pesan kesalahan Pengecualian JavaScript.](https://help.apple.com/assets/5C8ADDC1680CE21E4EE5E0AC/5C8ADDC9680CE21E4EE5E0B5/id_ID/3be0306715aa5df3e5b29a73899dc124.png)
Privasi dan Keamanan
Saat Anda mengizinkan pintasan untuk menjalankan Javascript di halaman web, pintasan tersebut dapat mengakses semua informasi di halaman web tersebut—termasuk data yang mungkin sensitif. App Pintasan melakukan beberapa langkah pencegahan untuk memastikan bahwa Anda menjalankan pintasan JavaScript dengan aman dan pribadi.
Saat Anda menjalankan pintasan yang berisi tindakan Jalankan JavaScript di Halaman Web, perintah akan ditampilkan beserta pemberitahuan bahwa pintasan akan berinteraksi dengan halaman web. Ini berarti bahwa pintasan dapat mengakses data dari halaman web yang kemungkinan bersifat sensitif, seperti informasi kata sandi, nomor telepon, atau kartu kredit.
![Editor pintasan menampilkan perintah untuk mengizinkan pintasan agar dapat dijalankan di domain tertentu.](https://help.apple.com/assets/5C8ADDC1680CE21E4EE5E0AC/5C8ADDC9680CE21E4EE5E0B5/id_ID/b2a5cad51c5c40e6c2dc87ed055b0a84.png)
Setelah Anda mengetuk Izinkan, pintasan akan dijalankan di halaman web tertentu. Jika Anda menjalankan lagi pintasan yang sama di halaman web yang sama, Pintasan tidak akan lagi menampilkan perintah. Izin dipertahankan untuk setiap pintasan, di setiap halaman web.
Setelah Anda mengizinkan akses pintasan ke suatu halaman web, Pintasan mengambil langkah tambahan untuk melindungi Anda lebih jauh dari skrip yang berpotensi berbahaya dengan secara berkala mengunduh definisi malware yang diperbarui. Sebelum berinteraksi dengan halaman web, Pintasan menganalisis JavaScipt, lalu memeriksa definisi malware. Berdasarkan evaluasi ini, Pintasan diinstruksikan untuk mengizinkan skrip, untuk menolak skrip, atau untuk menampilkan perintah tambahan sebelum mengizinkan pintasan untuk dijalankan.
Evaluasi ini dijalankan di perangkat Anda—konten JavaScript Anda (di bidang teks tindakan Jalankan JavaScript di Halaman Web)—tidak dikirimkan ke server eksternal untuk dianalisis.
Jika pintasan dihalangi untuk dijalankan, pesan kesalahan penjelasan akan ditampilkan.
Penting: Jangan menjalankan pintasan yang berisi JavaScript yang tidak Anda percayai.