Метод, обсуждаемый в этой статье, не был применен в реальных проектах, потому что я не сталкивался с проектами, которые требуют этого, но эксперимент обнаружил его возможным.
1. Источник моих мыслей
JavaScript - это хорошая вещь. Его внешний вид делает веб -страницы более живыми. Конечно, преимущества не только это. Популярные приложения Ajax в последние годы заставили людей начать уделять больше внимания применению малого языка JavaScript (многие эксперты по программе не считают его языком, в большинстве случаев это название сценария, и даже смотрят на людей, которые делают сценарии). Теперь многие блоги открывают разрешения сценариев на официальных веб -сайтах, позволяя пользователям настраивать сценарии для обогащения своего пространства, особенно некоторых технических профессиональных блогов, которые обеспечивают довольно расслабленную среду разработки. Но мы также обнаружили, что многие блоги имеют ограничения на определенные методы сценариев. Обратите внимание, что я говорю о частичных ограничениях здесь. Если это все ограничения, это очень просто. Просто отфильтруйте блок сценария <Script>, но как достигнуты некоторые ограничения?
Поскольку я не сталкивался с такой проблемой в своих предыдущих проектах, я не проводил много углубленных исследований. Вначале я просто подумал об использовании метода «замены» на основе моих чувств. Очевидно, что этот метод не работает, потому что он может пойти не так. Например, если я хочу отключить метод оповещения, доступен следующий код:
window.alert ('какое -то сообщение');
Теперь, чтобы сделать вышеупомянутый код недействительным, просто позвольте оповещать его изменить. Например, измените его на оповещение о капитале, которое определенно сообщит об ошибке сценария, но вы все равно можете использовать Try {} Catch {}, чтобы включить оповещение, но это еще одна большая проблема для распознавания отключенных языковых пакетов, и будет такая ошибка: замените оповещение в Document.Write ('предупреждение какое -то сообщение »);
Позже я подумал о переписывании метода, переписывании метода, чтобы отключить, и не делать его ничего. Результат оказался возможным, но я не знаю, является ли это научным методом. Я возьму это и обсудим это с вами.
2. Конкретная реализация
Давайте сначала посмотрим на следующий код, чтобы отключить два метода «предупреждение» и «написать»:
window.alert = function () {} document.write = function () {} window.alert ('предупреждение какое -то сообщение'); document.write ('написать какое -то сообщение');Это кажется действительно простым. В фактическом приложении извлеките первые две строки отдельно и сохраните их во внешнем файле JS, и загрузите файл JS сначала на странице, которая должна фильтровать методы JavaScript (вы также можете загрузить этот скрипт на предыдущую строку блока контента пользователя, чтобы наш администратор или производитель веб -страниц все еще мог использовать метод, который будет отключен в предыдущем блоке HTML). Таким образом, вызов отключенного метода впоследствии не будет работать.
Примечание. Наконец, я хотел бы напомнить вам, что вы также должны отключить некоторые методы работы DOM, такие как метод remove (), потому что пользователи могут использовать методы работы DOM для удаления загруженного вами файла JS в начале.