Cокращённый скрипт обновлённого спойлера
решил немного оптимизировать свою версию спойлера
скрипт сократился где то на 30%, что само по себе очень даже неплохо
убрал формирование строки, парсинг тега, древний метод добавления кнопки и прочую лабудень,
добавил регулярку, уменьшил кнопку до нормального размера (16х16) [реклама вместо картинки]
таким же макаром оптимизировал скрипты фотогалереи и shadowbox - Итог, главная страница моего форума сократилась с 54 кб, до 35 и соответственно стала загружаться быстрее
Cокращённый скрипт обновлённого спойлера
итак вот сам оптимизированный скрипт спойлера
в html-верху всё остаётся как прежде
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
в html-низ:
<!--Spoiler v.2.2--> <script type="text/javascript"> $(function(){ $("div.quote-box > cite > input.spoiler-button").click(function(){ $(this).parents("div.quote-box").find("blockquote.quote-box").toggle("normal"); var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a); }); $('td#button-code').before('<td class="mybutton" style=\'background-image:url("http://img706.imageshack.us/img706/1943/spoiler.gif")\' onclick="tag_spolier()"><img src="/i/blank.gif" alt="Спойлер"></td>'); }); function tag_spolier() {var FoundErrors = ''; var enterTITLE = prompt("Введите описание скрытого текста", 'Спойлер'); bbcode('[spoiler]',('|'+enterTITLE+'[/spoiler]'));} elm=document.getElementsByTagName("div") for(x in elm) if(elm[x].className=="post-content") { post = elm[x].innerHTML; spoilerr = /\[spoiler\]([^]*?)\|(.*?)\[\/spoiler\]/g elm[x].innerHTML = elm[x].innerHTML.replace(spoilerr, "<div class='quote-box' style='padding:1px;background: none;border: 0;'><cite style='width:100%;margin:0;'><input id='close' class='spoiler-button' style='width:140px;font-size:10px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$2'></cite><blockquote class='quote-box' style='display:none; width:100%;border: 1px solid black;margin:0;'>$1</blockquote></div>") } </script>
в закрытом виде на кнопке спойлера будет то название, которое вами присвоено, а в открытом виде всегда close -закрыть
меньше кода - шустрее работа
обновлено
сейчас работает:
и с квадратными скобками внутри,
и с любым количеством символов под спойлером,
и с двумя спойлерами в одном посте