Теги скрипта по умолчанию скрыты с помощью display:none;
. Unor 1 объясняет базовую спецификацию языка. Однако они по-прежнему являются частью модели DOM и могут иметь соответствующий стиль.
Тем не менее, важно помнить, что именно делает тег скрипта. Раньше он сопровождался типами и языками, но теперь в этом нет необходимости. Теперь предполагается, что там есть JavaScript, и в результате браузеры будут интерпретировать и выполнять сценарий по мере его обнаружения (или загрузки) из этих тегов.
После выполнения скрипта содержимым тега является только текст (часто скрытый) на странице. Этот текст можно раскрыть, но его также можно удалить, потому что это просто текст.
Внизу страницы, прямо перед закрывающим </html>
тегом, вы можете очень легко удалить эти теги вместе с их текстом, и на странице не будет никаких изменений.
Например:
(function(){
var scripts = document.querySelectorAll("script")
for(var i = 0
scripts[i].parentNode.removeChild(scripts[i])
}
})()
Это не приведет к удалению каких-либо функций, так как состояние страницы уже было изменено и отражено в текущем глобальном контексте выполнения. Например, если на странице была загружена библиотека, такая как jQuery, удаление тегов не будет означать, что jQuery больше не отображается, поскольку он уже был добавлен в среду выполнения страницы. По сути, это только заставляет инструмент проверки DOM не отображать элементы скрипта, но он подчеркивает, что однажды выполненные элементы скрипта действительно являются только текстом.
1. unor, 7 июля 2016 г., wutzebaer, «Когда теги должны быть видимыми и почему они могут?», 1 июля в 10:53, https://stackoverflow.com/a/38147398/1026459
<style>
с редактируемым содержимым. Хороший способ увидеть эффекты в реальном времени.