Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.06.2013, 14:29
Новичок на форуме
Отправить личное сообщение для Russel Посмотреть профиль Найти все сообщения от Russel
 
Регистрация: 29.06.2013
Сообщений: 2

Как заэкранировать тэг </script> в строке
Фрагмент кода страницы (это тривиальный пример, разумеется):
<script>
var str="<script>var n=1;</script>";
</script>

В результате js закрывается преждевременно, хотя первый </script> находится внутри строки.

Можно ли каким-то образом заэкранировать закрывающий тэг внутри строки?

Последний раз редактировалось Russel, 29.06.2013 в 14:31.
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2013, 14:39
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var str = '<script>var n=1;<\/script>';
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2013, 15:18
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

"разрывать" и первый и второй
var str="<sc" + "ript>var n=1;" + "</s" + "cript>";

Последний раз редактировалось dmitriymar, 29.06.2013 в 15:27.
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2013, 15:32
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

подгрузить скрипт из файла
Ответить с цитированием
  #5 (permalink)  
Старый 29.06.2013, 16:02
Новичок на форуме
Отправить личное сообщение для Russel Посмотреть профиль Найти все сообщения от Russel
 
Регистрация: 29.06.2013
Сообщений: 2

Сообщение от Ruslan_xDD Посмотреть сообщение
<\/script>
Блин, ведь был у меня такой вариант, да по ошибке не тот слэш вставил

Спасибо, вопрос отпал)

Последний раз редактировалось Russel, 29.06.2013 в 16:05.
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2013, 16:07
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Гы)
var serializer = new XMLSerializer();
var script = document.createElement('script');
script.textContent = 'var n = 1';
var str = serializer.serializeToString(script);
alert(str);
Ответить с цитированием
  #7 (permalink)  
Старый 29.06.2013, 16:32
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Ruslan_xDD
var str = '<script>var n=1;<\/script>';
Экранирование не нуждающихся в этом символов deprecated
Сообщение от dmitriymar
var str="<sc" + "ript>var n=1;" + "</s" + "cript>";
Можно еще по букве разбить )

Если используете JS на сервере, то просто прогоните строку через следующую функцию:

var escape_slash = function(value) {
   return value.replace(/<|>/g, function(chars, value) {
      return chars[value];
   }
   .bind(null, {
        '<' : '\x3C',
        '>' : '\x3E'
   }));
};

alert(escape_slash('</script>'));


В разметке это будет так:

alert('\x3C/script\x3E')

Последний раз редактировалось monolithed, 29.06.2013 в 16:34.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Как можно изменить URL в адресной строке браузера? балерун Events/DOM/Window 12 17.11.2009 13:08
как вызвать функцию название которой находиться в строке dark Общие вопросы Javascript 3 14.10.2009 13:02
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как присвоить текст строке состояния для всех браузеров? Tend Общие вопросы Javascript 4 14.05.2009 16:38