Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2010, 00:43
Новичок на форуме
Отправить личное сообщение для juline Посмотреть профиль Найти все сообщения от juline
 
Регистрация: 01.09.2010
Сообщений: 5

Переобработка скриптов
Пытаюсь написать адекватный хайд для сайтов, у которых на вооружении только javascript. Сейчас делаю под ucoz.
Я сделал предварительное шифрование текста (при добавлении).
В итоге я получаю код вида:
Код:
[hide]%064%073%061%064[/hide]
Потом стоит задача расшифровать его для нужных пользователей. Это можно сделать через 2 функции: unescape() и мою пользовательскую (которая обработает код предварительно, чтобы передать его для unescape()).

Вытащил с другого метода хайда код:

<script type="text/javascript">
 $('.posttdMessage').each(function () {
 Tmp = jQuery(this).html();
 jQuery(this).html(Tmp.replace(/\[hide\=([^\[]+)]([^\[]+)\[\/hide]/ig, '<span class="NeededPoints" style="display: none; ">$1</span><div class="HiddenBlock">$2</div>'));
 });
 <?if($USER_LOGGED_IN$)?>$.get('/index/8', {}, function (Res) {
 var MyActivities = eval($('#UserActivities', Res).html());
 $('.HiddenBlock').each(function (l) {
 if (parseInt($('.NeededPoints:eq(' + l + ')').html()) <= MyActivities) {
 jQuery(this).show();
 } else {
 jQuery(this).html('Необходимо <b>' + $('.NeededPoints:eq(' + l + ')').html() + '</b> сообщений для просмотра.').show();
 }
 });
 });<?else?>
 $('.HiddenBlock').each(function (l) {
 jQuery(this).html('Скрытый текст. Для просмотра необходимо зарегистрироваться и набрать <b>' + $('.NeededPoints:eq(' + l + ')').html() + '</b> сообщений.').show();
 });
 <?endif?>

 </script>

Он заменяет на странице [hide...[/hide] на соответствующий текст. Оно мне идеально подходит, если модифицировать код следующим образом:

Исходная строка:
jQuery(this).html(Tmp.replace(/\[hide\=([^\[]+)]([^\[]+)\[\/hide]/ig, '<span class="NeededPoints" style="display: none; ">$1</span><div class="HiddenBlock">$2</div>'));


Результат:
jQuery(this).html(Tmp.replace(/\[hide\=([^\[]+)]([^\[]+)\[\/hide]/ig, '<span class="NeededPoints" style="display: none; ">$1</span><div class="HiddenBlock">'+'<sc'+'ript type="text/javascript">'+'document.write(unescape(text_unmod($2,$1)));'+'</scr'+'ipt>'+'</div>'));


Это должно помочь расшифровать хайд для нужных людей. Но, сталкиваюсь с проблемой!
После замены не выполняются скрипты!
Возможно, это из-за того, что сценарий обработки уже ушел ниже, чем находятся эти хайды. Можно как-то запустить переобработку страницы с модифицированным кодом?
Или посоветуйте альтернативу этому методу.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как включить отладку скриптов в IE uonax Internet Explorer 0 15.06.2010 20:03
Подключение скриптов из внешнего файла feelman Общие вопросы Javascript 19 29.05.2010 21:21
Динамическая подзагрузка и исполнение скриптов NT Man Javascript под браузер 2 28.08.2009 12:32
Паралельная загрузка чужих скриптов? GOll Общие вопросы Javascript 2 10.07.2008 22:39
Совершествуем стиль написания скриптов Mitrandir Events/DOM/Window 6 16.06.2008 09:02