Metode yang dibahas dalam artikel ini belum diterapkan dalam proyek -proyek aktual, karena saya belum menemukan proyek yang memerlukan ini, tetapi percobaan merasa layak.
1. Sumber pikiran saya
Javascript adalah hal yang baik. Penampilannya membuat halaman web lebih hidup. Tentu saja, manfaatnya bukan hanya itu. Aplikasi AJAX populer dalam beberapa tahun terakhir telah membuat orang mulai lebih memperhatikan penerapan bahasa kecil JavaScript (banyak ahli program tidak menganggapnya sebagai bahasa, paling banyak itu adalah judul skrip, dan bahkan memandang rendah orang yang membuat skrip). Sekarang banyak blog terbuka izin skrip di situs web resmi, yang memungkinkan pengguna untuk menyesuaikan skrip untuk memperkaya ruang mereka, terutama beberapa blog profesional teknis, yang menyediakan lingkungan pengembangan yang agak santai. Tetapi kami juga menemukan bahwa banyak blog memiliki batasan pada metode skrip tertentu. Perhatikan bahwa saya berbicara tentang pembatasan parsial di sini. Jika itu semua pembatasan, itu sangat sederhana. Cukup memfilter blok skrip <script>, tetapi bagaimana beberapa pembatasan dicapai?
Karena saya tidak mengalami masalah seperti itu dalam proyek saya sebelumnya, saya tidak melakukan banyak penelitian mendalam. Pada awalnya, saya hanya berpikir untuk menggunakan metode "pengganti" berdasarkan perasaan saya. Jelas metode ini tidak berhasil karena mungkin salah. Misalnya, jika saya ingin menonaktifkan metode peringatan, kode berikut tersedia:
window.alert ('beberapa pesan');
Sekarang untuk membuat kode di atas tidak valid, biarkan peringatan mengubahnya. Misalnya, ubah menjadi peringatan modal, yang pasti akan melaporkan kesalahan skrip, tetapi Anda masih dapat menggunakan coba {} catch {} untuk menyertakan peringatan, tetapi ini adalah masalah besar lain untuk pengakuan paket bahasa yang menonaktifkan, dan akan ada kesalahan seperti itu: ganti peringatan di document.write ('peringatan beberapa pesan');
Kemudian saya berpikir untuk menulis ulang metode ini, menulis ulang metode yang akan dinonaktifkan, dan membuatnya tidak melakukan apa pun. Hasilnya terbukti layak, tetapi saya tidak tahu apakah itu metode ilmiah. Saya akan mengeluarkannya dan mendiskusikannya dengan Anda.
2. Implementasi spesifik
Mari kita lihat kode berikut untuk menonaktifkan dua metode "waspada" dan "tulis":
window.alert = function () {} document.write = function () {} window.alert ('peringatan beberapa pesan'); document.write ('tulis beberapa pesan');Sepertinya sangat sederhana. Dalam aplikasi aktual, ekstrak dua baris pertama secara terpisah dan simpan di file JS eksternal, dan muat file JS terlebih dahulu pada halaman yang perlu memfilter metode JavaScript (Anda juga dapat memuat skrip ini pada baris sebelumnya dari blok konten pengeditan pengguna, sehingga administrator atau pembuat halaman web kami masih dapat menggunakan metode yang akan dinonaktifkan di blok HTML sebelumnya). Dengan cara ini, memanggil metode yang dinonaktifkan setelah itu tidak akan berfungsi.
CATATAN: Akhirnya, saya ingin mengingatkan Anda bahwa Anda juga harus menonaktifkan beberapa metode operasi DOM, seperti metode Remove (), karena pengguna dapat menggunakan metode operasi DOM untuk menghapus file JS yang Anda muat di awal.