«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как остановить или изменить выполнение клиентского JavaScript?

Как остановить или изменить выполнение клиентского JavaScript?

Опубликовано 22 ноября 2024 г.
Просматривать:968

How to Stop or Modify Client-Side JavaScript Execution?

Как остановить или изменить выполнение JavaScript на стороне клиента

Введение

В определенных сценариях , вам может потребоваться остановить или изменить выполнение определенных функций JavaScript в клиентской среде. Это может произойти по разным причинам, например, удаление нежелательных функций или корректировка поведения динамических элементов.

Остановка выполнения JavaScript

Для современных браузеров, таких как Firefox, событие beforescriptexecute может использоваться для перехвата и предотвращения выполнения JavaScript до того, как оно произойдет. Это позволяет вам ориентироваться на определенные теги или элементы

Чтобы реализовать этот метод, вы можете использовать функцию JavaScript, подобную следующей:

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;
      }
    }
  }
}

Параметр controlArray позволяет определять шаблоны и соответствующие действия для сопоставления сценариев. Например, у вас может быть правило, останавливающее выполнение скрипта, если его исходный URL-адрес соответствует определенному шаблону:

checkForBadJavascripts([
  [true, /evilExternalJS/i, null]
]);

Изменение поведения функции JavaScript

Если вам нужно изменить поведение определенной функции JavaScript, вы можете использовать методы динамического JavaScript для внедрения или переопределения функции. code.

Один из способов сделать это — использовать функцию overrideFunction из [Greasemonkey](https://github.com/greasemonkey/greasemonkey):

GM_overrideFunction(window.init, function() {
  // Override the existing init function and modify its behavior as needed
});

В качестве альтернативы вы можете использовать функцию addJS_Node для вставки нового узла JavaScript, который выполняет ваш собственный код:

addJS_Node('alert("Hooray, you are a millionaire!")');

Совместимость браузера

Обратите внимание, что Событие beforescriptexecute поддерживается в Firefox, но в настоящее время оно не поддерживается в других браузерах, таких как Chrome. Для браузеров, отличных от Firefox, вам может потребоваться использовать полное расширение браузера для достижения желаемой функциональности.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3