Тег NOSCRIPT

How do you disable elements using JavaScript

What do you mean when you say: «disable script tags»? Disable how and why? What do you want to achieve?

Related: Use JavaScript to prevent a later tag from being evaluated? Btw, getElementsByTagName returns a NodeList . If you wanted to assign properties to elements, you’d have to iterate over the list first. Which attributes are supported by the script can be found in the specification.

@FelixKling : I will keep that in mind, Sir. I’m a JS noob. I still haven’t really got the hang of it. Thanks for the tip! +1 for the specs.

6 Answers 6

In fact, it is possible to disable execution by changing «type» attribute:

    

But if it’s executed it won’t be executed again anyway. So no need to disable it in this case. If it has added an event listener, or you did setInterval() in it — surely those won’t be disabled even if you delete

This seems quite useful for user generated or embedded HTML that is rendered and displayed after the main page load.

Can’t be done. A script tag evaluates as soon as the DOM renderer renders it, so getting a handle on it after wards won’t do much.

You can disable a script element. There are a couple of ways:

You can specify a different script type as other have listed. Heres the one that worked for me:

//loop through all script tags on page $('script').each(function()< var scripthtml = $(this).html(); $(this).replaceWith(''); >); 

All of the official script types can all be found here: iana.org

Читайте также:  Ultra hook css v91

The second way is just a simple if statement:

//loop through all script tags on page $('script').each(function()< var scripthtml = $(this).html(); $(this).replaceWith('if (1==0) '); >); 

The if statement will always be false, so anything inside the script tag won’t execute. However all of your functions() inside the script tag will all be valid.

Heres the javascript equivalent of replaceWith:

//get script and html var yourscripttag = document.getElementById('yourscripttagID'); var scripthtml = 'if (1==0)'; //remove script yourscripttag.remove(); //create new script element var newscript=document.createElement('script'); newscript.type='text/javascript'; //insert html in new script tag newscript.appendChild(document.createTextNode(scripthtml)); //insert new script tag into head document.getElementsByTagName('head').item(0).appendChild(newscript); 

Источник

Html не использовать скрипт

Покажет контент пользователю, когда отключена поддержка JavaScript.

Время чтения: меньше 5 мин

Кратко

Скопировать ссылку «Кратко» Скопировано

Тег используется для показа пользователю контента, когда отключена поддержка JavaScript.

Пример

Скопировать ссылку «Пример» Скопировано

Для наглядности приведём пример использования тега вместе с его противоположным тегом — .

   document.write("Мой первый код на JavaScript 🥳")  script> document.write("Мой первый код на JavaScript 🥳") script> noscript>Прости, твой браузер не поддерживает JavaScript ☹️noscript>      

Как пишется

Скопировать ссылку «Как пишется» Скопировано

Тег — парный, его всегда нужно закрывать с помощью < / noscript>.

Как понять

Скопировать ссылку «Как понять» Скопировано

Тег используется для предоставления альтернативного контента пользователям, у которых отключены скрипты в браузере или браузер их не поддерживает. В остальных случаях браузер игнорирует этот тег и всё, что располагается внутри него.

может использоваться как в , так и в . При использовании внутри тег может содержать только теги , и .

Атрибуты

Скопировать ссылку «Атрибуты» Скопировано

У нет уникальных атрибутов, применяются все глобальные атрибуты. Атрибуты для браузерных событий поддерживаются, но не применяются, так как используется, когда отсутствует поддержка JavaScript.

Источник

Html не использовать скрипт

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

Синтаксис

Закрывающий тег

Атрибуты

         

Браузеры

Internet Explorer 8 скрывает содержимое тега , при этом отображает результат использования стилей. Например, если к элементу добавить границу, фон с полями, то граница и фон будут видны на странице.

Opera 11 не поддерживает тег , эта ошибка исправлена в версии 11.10.

Не выкладывайте свой код напрямую в комментариях, он отображается некорректно. Воспользуйтесь сервисом cssdeck.com или jsfiddle.net, сохраните код и в комментариях дайте на него ссылку. Так и результат сразу увидят.

Типы тегов

HTML5

Блочные элементы

Строчные элементы

Универсальные элементы

Нестандартные теги

Осуждаемые теги

Видео

Документ

Звук

Изображения

Объекты

Скрипты

Списки

Ссылки

Таблицы

Текст

Форматирование

Формы

Фреймы

Источник

Подключение JavaScript к HTML

Осваивайте профессию, начните зарабатывать, а платите через год!

Курсы Python Ак­ция! Бес­плат­но!

Станьте хакером на Python за 3 дня

Веб-вёрстка. CSS, HTML и JavaScript

Станьте веб-разработчиком с нуля

В этой главе мы займемся размещением сценариев в HTML-документе, чтобы иметь возможность использовать их для оперативной модификации HTML-документа. Для вставки JavaScript-кoдa в НТМL-страницу обычно используют элемент .

Первая программа

Чтобы ваша первая пpoгpaммa (или сценарий) JavaScript запустилась, ее нужно внедрить в НТМL-документ.
Сценарии внедряются в HTML-документ различными стандартными способами:

  • поместить код непосредственно в атрибут события HTML-элемента;
  • поместить код между открывающим и закрывающим тегами ;
  • поместить все ваши скрипты во внешний файл (с расширением .js), а затем связать его с документом HTML.

JavaScript в элементе script

Самый простой способ внедрения JavaScript в HTML-документ – использование тега . Теги часто помещают в элемент , и ранее этот способ считался чуть ли не обязательным. Однако в наши дни теги используются как в элементе , так и в теле веб-страниц.

Таким образом, на одной веб-странице могут располагаться сразу несколько сценариев. В какой последовательности браузер будет выполнять эти сценарии? Как правило, выполнение сценариев браузерами происходит по мере их загрузки. Браузер читает HTML-документ сверху вниз и, когда он встречает тег , рассматривает текст программы как сценарий и выполняет его. Остальной контент страницы не загружается и не отображается, пока не будет выполнен весь код в элементе .

Обратите внимание: мы указали атрибут language тега , указывающий язык программирования, на котором написан сценарий. Значение атрибута language по умолчанию – JavaScript, поэтому, если вы используете скрипты на языке JavaScript, то вы можете не указывать атрибут language .

JavaScript в атрибутах событий HTML-элементов

Вышеприведенный сценарий был выполнен при открытии страницы и вывел строку: «Привет, мир!». Однако не всегда нужно, чтобы выполнение сценария начиналось сразу при открытии страницы. Чаще всего требуется, чтобы программа запускалась при определенном событии, например при нажатии какой-то кнопки.

В следующем примере функция JavaScript помещается в раздел HTML-документа. Вот пример HTML-элемента с атрибутом события, обеспечивающим реакцию на щелчки мышью. При нажатии кнопки генерируется событие onclick.

Внешний JavaScript

Если JavaScript-кода много – его выносят в отдельный файл, который, как правило, имеет расширение .js .

Чтобы включить в HTML-документ JavaScript-кoд из внешнего файла, нужно использовать атрибут src (source) тега . Его значением должен быть URL-aдpec файла, в котором содержится JS-код:

В этом примере указан абсолютный путь к файлу с именем script.js, содержащему скрипт (из корня сайта). Сам файл должен содержать только JavaScript-кoд, который иначе располагался бы между тегами .

По аналогии с элементом атрибуту src элемента можно назначить полный URL-aдpec, не относящийся к домену текущей НТМL-страницы:

На заметку: Подробнее о путях файлов читайте в разделе «Абсолютные и относительные ссылки».

Чтобы подключить несколько скриптов, используйте несколько тегов:

Примечание: Элемент , хотя внешний сценарий выполняется, встроенный код игнорируется.

Независимо от того, как JS-код включается в НТМL-документ, элементы интерпретируются браузером в том порядке, в котором они расположены в HTML-документе. Сначала интерпретируется код первого элемента , затем браузер приступает ко второму элементу и т. д.

Внешние скрипты практичны, когда один и тот же код используется во многих разных веб-страницах. Браузер скачает js-файл один раз и в дальнейшем будет брать его из своего кеша, благодаря чему один и тот же скрипт, содержащий, к примеру, библиотеку функций, может использоваться на разных страницах без полной перезагрузки с сервера. Кроме этого, благодаря внешним скриптам, упрощается сопровождение кода, поскольку вносить изменения или исправлять ошибки приходится только в одном месте.

Примечание: Во внешние файлы копируется только JavaScript-код без указания открывающего и закрывающего тегов .

Расположение тегов

Вы уже знаете, что браузер читает HTML-документ сверху вниз и, начинает отображать страницу, показывая часть документа до тега . Встретив тег , переключается в JavaScript-режим и выполняет сценарий. Закончив выполнение, возвращается обратно в HTML-режим и отображает оставшуюся часть документа.

Это наглядно демонстрирует следующий пример. Метод alert() выводит на экран модальное окно с сообщением и приостанавливает выполнение скрипта, пока пользователь не нажмёт «ОК»:

Источник

Как защититься от скриптов в jQuery.html()?

Если в code будет записано , то этот alert покажется. Как сделать, чтобы скрипты не выполнялись, но при этом по-прежнему выполнялись html тэги. Т.е. если code = "a" , то появится a

Вам нужно, что остальные теги работали, или достаточно будет того, что они просто текстом будут выводиться?

@ruslan5t как на мой взгляд - тут парсер надо собирать. Я попробую что-нибудь узнать, но мне кажется, что всё сводится к парсеру. 🙁

Есть ф-я jQuery.parseHTML() , которая умеет убирать скрипты, но нельзя полагаться только на неё полностью. В её описании есть ещё один способ вставить-таки скрипт:

4 ответа 4

PHP

function repl($buffer) < $arr = array( 'onclick', 'onerror', 'onload', 'onmouseover' ); $buffer = preg_replace("/\(.*)\/", "", $buffer); foreach ($arr as $key => $value) < $buffer = preg_replace("/".$value."=\"(.*)\"/", "", $buffer); >return $buffer; > 

@bazaev05, @sergiks имеет в виду то, что, например, в img onerror="" можно указать js-код, который выполнится при невозможности загрузить изображение (как в onclick, который вы указали)

Например, проверяйте регуляркой на соотвествие тем операторам, которые вы допускаете, а остальные обрамляйте тегами

Наверняка есть какая-нибудь дефолтная функция, но

var text = "a" text.replace(new RegExp('<(/?)script>', 'gi'), '<$1script>'); // a<script>alert('. ');</script> 

Можно даже не прибегать к регэкспам, используя некрасивый код

text.replace('', '</script>'); 

@sergiks Цитата:

Используйте innerHTML и будет вам счастье: $(..).prop('innerHTML', code);

Не понял, что не так, ваш пример сломан. dropbox.com/s/6gxcqdz6j5z53id/… jsfiddle.net/RubaXa/aR65C/3 — вот пример чтобы побаловаться

@RubaXa: странно, в FF всё работает. А, понял. Вам надо не , а

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.7.27.43548

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Оцените статью