Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как заставить браузер игнорировать html код?? (https://javascript.ru/forum/misc/24969-kak-zastavit-brauzer-ignorirovat-html-kod.html)

Tums37 20.01.2012 16:26

Как заставить браузер игнорировать html код??
 
К примеру.
есть страница на которой есть форма с полем для ввода текста и кнопкой.
Пользователь вводить что нибудь в это поле и ниже с помощью innerHTML выводится например это: "Вы ввели 'Привет!'"

Проблема в том что пользователь может ввести любой html тег и получится лажа. как от этого избавится???

InnerText не поможет так как фраза "Вы ввели" должна быть к примеру подчёркнутой а сам текст нет!:)

Pavel M. 20.01.2012 16:36

перед выводом текста из поля ввода
сделайте замену replace('<', '&lt;')

Tums37 20.01.2012 16:47

Огромное спасибо как раз то что нужно!

Gozar 20.01.2012 17:34

Если вставлять текст именно как текст document.createTextNode, то теги не сработают.

Это так, к сведению. Точный ответ на вопрос.

Gozar 20.01.2012 17:37

Цитата:

Сообщение от Tums37 (Сообщение 151686)
InnerText не поможет так как фраза "Вы ввели" должна быть к примеру подчёркнутой а сам текст нет!:)

Просто работать придется по другому - DOM манипуляциями, а не innerText в элемент.

monolithed 20.01.2012 19:09

На выбор:
<div id="id" />
<script>
document.getElementById('id').firstChild.nodeValue = '<p>foo</p>';
</script>


<div id="id" />
<script>
document.getElementById('id').firstChild.data = '<p>foo</p>';
</script>


<div id="id" />
<script>
document.getElementById('id').firstChild.appendData('<p>foo</p>');
</script>


<div id="id" />
<script>
document.getElementById('id').firstChild.insertData(0, '<p>foo</p>');
</script>


<div id="id" />
<script>
document.getElementById('id').appendChild(document.createTextNode('<p>foo</p>'));
</script>


<div id="id" />
<script>
document.getElementById('id').innerHTML = '<xmp><p>foo</p></xmp>';
</script>

Tums37 21.01.2012 13:23

Спасибо но мне подошёл и первый вариант:)

Gozar 21.01.2012 13:48

Цитата:

Сообщение от Tums37 (Сообщение 151834)
Спасибо но мне подошёл и первый вариант:)

А это не тебе ответы ;)

Будут ещё пришедшие после тебя.


Часовой пояс GMT +3, время: 04:09.