Cara Menghentikan atau Mengubah Suai Pelaksanaan JavaScript Bahagian Klien
Pengenalan
Dalam senario tertentu , anda mungkin perlu menghentikan atau mengubah pelaksanaan fungsi JavaScript tertentu pada persekitaran sebelah klien. Ini mungkin atas pelbagai sebab, seperti mengalih keluar fungsi yang tidak diingini atau melaraskan gelagat elemen dinamik.
Menghentikan Pelaksanaan JavaScript
Untuk penyemak imbas moden seperti Firefox, acara beforescriptexecute boleh digunakan untuk memintas dan menghalang pelaksanaan JavaScript sebelum ia berlaku. Ini membolehkan anda menyasarkan
Untuk melaksanakan kaedah ini, anda boleh menggunakan fungsi JavaScript seperti berikut:
function checkForBadJavascripts(controlArray) { for (var J = controlArray.length - 1; J >= 0; --J) { var bSearchSrcAttr = controlArray[J][0]; var identifyingRegex = controlArray[J][1]; if (bSearchSrcAttr) { if (identifyingRegex.test(zEvent.target.src)) { stopBadJavascript(J); return false; } } else { if (identifyingRegex.test(zEvent.target.textContent)) { stopBadJavascript(J); return false; } } } }
Parameter controlArray membolehkan anda menentukan corak dan tindakan yang sepadan untuk skrip yang sepadan. Sebagai contoh, anda boleh mempunyai peraturan untuk menghentikan pelaksanaan skrip jika URL sumbernya sepadan dengan corak tertentu:
checkForBadJavascripts([ [true, /evilExternalJS/i, null] ]);
Mengubah Kelakuan Fungsi JavaScript
Jika anda perlu mengubah suai tingkah laku fungsi JavaScript tertentu, anda boleh menggunakan teknik JavaScript dinamik untuk menyuntik atau mengatasi fungsi kod.
Salah satu cara untuk melakukan ini ialah menggunakan fungsi overrideFunction daripada [Greasemonkey](https://github.com/greasemonkey/greasemonkey):
GM_overrideFunction(window.init, function() { // Override the existing init function and modify its behavior as needed });
Sebagai alternatif, anda boleh gunakan fungsi addJS_Node untuk memasukkan nod JavaScript baharu yang melaksanakan tersuai anda kod:
addJS_Node('alert("Hooray, you are a millionaire!")');
Keserasian Pelayar
Perhatikan bahawa walaupun acara beforescriptexecute disokong dalam Firefox, ia tidak disokong dalam penyemak imbas lain seperti Chrome pada masa ini. Untuk penyemak imbas selain Firefox, anda mungkin perlu menggunakan sambungan penyemak imbas penuh untuk mencapai kefungsian yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Menghentikan atau Mengubah Suai Perlaksanaan JavaScript Sebelah Klien?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!