• Страница 1 из 1
  • 1
Форум Studio AD » Сайтостроение » Общий форум по Javascript » Замена внутри [code]
Замена внутри [code]
Ahelhot
Дата: Среда, 10.11.2010, 20:07 | Сообщение # 1
Ahelhot fail
Группа: Проверенные
Пользователь №: 3261
Сообщений: 66
Получено оценок: 2
Проблема такая, сделал я специальный bb код для форума, однако он заменяет текст везде внутри сообщения.

Выглядит скрипт так:

Code

  <div id="enthp$ID$">$MESSAGE$</div>
  <script>txt2replace('enthp$ID$')</script>

Сама функция находится внутри шапки:

Code

<script type="text/javascript">
  function txt2replace(fcid){
  var node = document.getElementById(fcid);
  node.innerHTML = node.innerHTML.replace(/\!==/gi, '<h1>').replace(/\==!/gi, '</h1>');
  node.innerHTML = node.innerHTML.replace(/\!=/gi, '<h2>').replace(/\=!/gi, '</h2>');
  }
</script>

Как сделать так что бы скрипт не работал внутри всех элементов [ code ] [ /code ].

Мне в голову приходит вариант только об обратной замене :)

  
UnderShot
Дата: Четверг, 11.11.2010, 12:14 | Сообщение # 2
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Вырезать эти блоки с code:
Code
<script>
function txt2replace(fcid){
  var codeArray=[],node=document.getElementById(fcid);
  return node.innerHTML=node.innerHTML.replace(/(\[code][\s\S]+?\[\/code])/g,function(a,b){
   codeArray.push(b); // пополняем массив
   return "~[REMOVED"+codeArray.length+"]~"
  })
  .replace(/\!==/gi,'<h1>').replace(/\==!/gi,'</h1>')
   .replace(/\!=/gi,'<h2>').replace(/\=!/gi,'</h2>')
  // возвращаем
  .replace(/~\[REMOVED(\d+)]~/g,function(a,b){
   return codeArray[--b]
  })
}</script>


Очень важная тема!
Filmzona — онлайн фильмы.
  
Ahelhot
Дата: Четверг, 11.11.2010, 15:00 | Сообщение # 3
Ahelhot fail
Группа: Проверенные
Пользователь №: 3261
Сообщений: 66
Получено оценок: 2
Вставил вместо старого кода, ничего не изменилось <_<
Форматирование также заменяет !== на заголовок как в коде, так и в не кода.
  
UnderShot
Дата: Четверг, 11.11.2010, 17:20 | Сообщение # 4
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Конечно, ты прав.

Очень важная тема!
Filmzona — онлайн фильмы.
  
Ahelhot
Дата: Четверг, 11.11.2010, 19:28 | Сообщение # 5
Ahelhot fail
Группа: Проверенные
Пользователь №: 3261
Сообщений: 66
Получено оценок: 2
Эмм, причем тут хтмл? Я говорю про [ code ] на форуме юкоза.

вот этот код:

Code

!== заголовок ==!


Сообщение отредактировал Ahelhot - Четверг, 11.11.2010, 19:29
  
Ahelhot
Дата: Четверг, 11.11.2010, 19:34 | Сообщение # 6
Ahelhot fail
Группа: Проверенные
Пользователь №: 3261
Сообщений: 66
Получено оценок: 2
Я говорю о том что скрипт должен менять не в тексте [ code ] [ /code ] а уже после загрузки с сервера.

Т.е вместо бб кола [ code ] будет:

Code
<div class="bbCodeBlock"><div style="padding-left: 5px; font-weight: bold; font-size: 7pt;" class="bbCodeName">Code</div><div style="border: 1px inset; max-height: 200px; overflow: auto;" class="codeMessage">
!==test==!
</div></div>

Так что ты тоже прав ) Просто переделал скрипт не так как я думал, но это уже моя вина видимо.

Сообщение отредактировал Ahelhot - Четверг, 11.11.2010, 19:34
  
UnderShot
Дата: Пятница, 12.11.2010, 07:52 | Сообщение # 7
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Quote (Ahelhot)
Эмм, причем тут хтмл
Quote (Ahelhot)
node.innerHTML = node.innerHTML
Ты такой смешной
Quote (Ahelhot)
но это уже моя вина видимо

Ага, замени везде
Code
innerHTML
на
Code
value
proof


Очень важная тема!
Filmzona — онлайн фильмы.
  
Ahelhot
Дата: Пятница, 12.11.2010, 13:58 | Сообщение # 8
Ahelhot fail
Группа: Проверенные
Пользователь №: 3261
Сообщений: 66
Получено оценок: 2
Quote (UnderShot)
Ага, замени везде

чито?

Вот что мне надо.

Прикрепления: 2748496.png (6.6 Kb)
  
UnderShot
Дата: Пятница, 12.11.2010, 15:07 | Сообщение # 9
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Для тебя я уже пример написал… Думай…

Очень важная тема!
Filmzona — онлайн фильмы.
  
Ahelhot
Дата: Пятница, 12.11.2010, 16:00 | Сообщение # 10
Ahelhot fail
Группа: Проверенные
Пользователь №: 3261
Сообщений: 66
Получено оценок: 2
http://img252.imageshack.us/i/71369825.jpg/
  
UnderShot
Дата: Пятница, 12.11.2010, 16:01 | Сообщение # 11
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
http://undershot.ru/p

Очень важная тема!
Filmzona — онлайн фильмы.
  
Ahelhot
Дата: Пятница, 12.11.2010, 16:35 | Сообщение # 12
Ahelhot fail
Группа: Проверенные
Пользователь №: 3261
Сообщений: 66
Получено оценок: 2
Я же сказал что он не в [ code ] [ /code ] менять должен, а внутри дивов.
  
UnderShot
Дата: Пятница, 12.11.2010, 16:45 | Сообщение # 13
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Quote (Ahelhot)
Как сделать так что бы скрипт не работал внутри всех элементов [ code ] [ /code ].
Quote (Ahelhot)
Я же сказал что он не в [ code ] [ /code ] менять должен, а внутри дивов.
Quote (Ahelhot)
Эмм, причем тут хтмл?
Quote (Ahelhot)
а уже после загрузки с сервера.
Не знаю что и ответить…


Очень важная тема!
Filmzona — онлайн фильмы.
  
UnderShot
Дата: Пятница, 12.11.2010, 16:46 | Сообщение # 14
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
$INFO$Закрыто :P

Очень важная тема!
Filmzona — онлайн фильмы.
  
Форум Studio AD » Сайтостроение » Общий форум по Javascript » Замена внутри [code]
  • Страница 1 из 1
  • 1
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.