хотя если честно пока вариантов в голове нет
А может, тогда мне применить другой? Но как узнать, что там не выявятся такие же проблемы? Или другие?
А Ваш спойлер больно уж хорош, и многие уже его используют! Только не все видят.
Единый форум поддержки |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер
хотя если честно пока вариантов в голове нет
А может, тогда мне применить другой? Но как узнать, что там не выявятся такие же проблемы? Или другие?
А Ваш спойлер больно уж хорош, и многие уже его используют! Только не все видят.
Makarius
ещё раз исправил версию обновлённого спойлера из 42 поста (теперь актуальная версия v.2.2)
сейчас работает:
и с квадратными скобками внутри,
и с любым количеством символов под спойлером,
и с двумя спойлерами в одном посте
единственное не тестировал в ИЕ
спасибо вам за активное выявление багов
Romych, новая версия прекрасно работает и с десятками квадратных скобок, и со слешами где угодно, в т.ч. и в конце, и с текстом... ну, пробовал порядка 100 000 знаков - и нормально!
И в одном посте можно ставить хоть 10 спойлеров (больше не пробовал), что тоже удобно: можно в заголовке спойлера указывать, то ли это примечание, то ли математическая часть, и т.д. Хотя они этого делать явно не будут, я уж знаю своих форумчан...
Правда, если один спойлер окажется внутри другого - получаются забавные глюки, но это уже извращение какое-то... на практике, вряд ли они даже два отдельных будут использовать. Читать подробно - вот все, что требуется.
А что в IE 8 по-прежнему не видно даже значка - ИМХО пусть переходят на другие браузеры, дался им этот гейтсовский браузер! Или же обходятся без этого удобства. В конце концов, выбор мы им даем.
В общем, большое спасибо за v.2.2!
Linnan
Здравствуйте.
После вставки нового скрипта спойлера - прежний был полностью заменён - получилась вот такая ерунда - две кнопки со спойлерами. Может прежний скрипт плохо вычистился?
Давайте адрес форума.
Здравствуйте.
Здравствуйте, rps! Может, глянете свежим глазом на этот новый скрипт - как выяснилось, почему-то иногда спойлер не срабатывает. Даже в Опере (насчет IE 8 мы уже смирились...). Видимо, кроме скобок (но это устранено), ему что-то еще не нравится, но что именно - как я ни пытался, выловить не смог.
Отредактировано Makarius (Вт, 26 Окт 2010 09:03:13)
rps
http://endlesssleep.mybb.ru/ можно и старый спойлер вернуть, только я его скрипта не знаю
Linnan
В ХТМЛ-низ у Вас нахожу:
<!--Spoiler--> <style type="text/css"> #button-spoiler {background-image:url('http://img706.imageshack.us/img706/1943/spoiler.gif'); padding:0; line-height:0; background-position:center; background-repeat:no-repeat; height:26px; width:100%} </style> <script type="text/javascript"> $(document).ready(function(){ $("div.quote-box > cite > input.spoiler-button").click(function(){ $(this).parents("div.quote-box").find("blockquote.quote-box").toggle("normal"); }); }); function tag_spolier() {var FoundErrors = ''; var enterTITLE = prompt("Введите описание скрытого текста", 'Спойлер'); bbcode('[spoiler]',('|'+enterTITLE+'[/spoiler]'));} if ((document.URL.indexOf("viewtopic.php")!=-1) || (document.URL.indexOf("post.php")!=-1)){ 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 class='spoiler-button' style='width:140px;font-size:10px; margin:0; cursor: pointer' type='button' value='$2'></cite><blockquote class='quote-box' style='display:none; width: 80%;border: 1px solid black;margin:0;'>$1</blockquote></div>") }}} if(form=document.getElementById("form-buttons")) form.getElementsByTagName("tr")[0].insertCell(16).innerHTML="<img src='/i/blank.gif' title='Вставить спойлер' id='button-spoiler' onclick=\"tag_spolier()\">" </script>
Там же, но ниже:
<!--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>
Оставьте один.
Makarius
Здравствуйте.
Здравствуйте, rps! Может, глянете свежим глазом на этот новый скрипт - как выяснилось, почему-то иногда спойлер не срабатывает. Даже в Опере (насчет IE 8 мы уже смирились...). Видимо, кроме скобок (но это устранено), ему что-то еще не нравится, но что именно - как я ни пытался, выловить не смог.
Ставьте в ХТМЛ-низ из 5 сообщения, всё остальное удаляйте. Этот вариант уже отточен и работает во всех браузерх.
Версия с регулярными выражениями Вам ничего не даст, кроме сокращения длины скрипта. Зато добавите массу новых проблем и глюков. Не вижу в этом смысла.
rps
спасибо. Значит вместо удаления старого спойлера почему-то новый рядом встал
Ставьте в ХТМЛ-низ из 5 сообщения, всё остальное удаляйте. Этот вариант уже отточен и работает во всех браузерах
Здравствуйте, rps!
Пока проверил сам (но 80% заменил на 99%, вместо "закрытая..." вставил "Читать всё", вместо второго - "Закрыть"). Вроде работает со всеми предыдущими ловушками, и даже поддерживает спойлер в спойлере.
Неудобство - выскакивает ненужное окно, но просто сразу жмем Ок...
Теперь запущу для проверки всеми. А то получается, что браузеры разные не только названиями...
Спасибо!
Ставьте в ХТМЛ-низ из 5 сообщения, всё остальное удаляйте. Этот вариант уже отточен и работает во всех браузерх.
Версия с регулярными выражениями Вам ничего не даст, кроме сокращения длины скрипта. Зато добавите массу новых проблем и глюков. Не вижу в этом смысла.
скрипт из 5 поста тоже далеко неидеален, тут ещё не реализованы две задачи, которые периодически спрашивают:
1. несрабатывание спойлера внутри тега [code)
2. возможность изменения дизайна кнопки
по-первому пункту реализуемо только через регулярное выражение (которое здесь охаяли), либо в движке php править
если без регулярки по-любому не обойтись, тогда смысл делать огромный скрипт, с кучей абсолютно ненужных условий и циклов?
регулярка конечно сложная вещь, но через неё и можно творить чудеса
по второму пункту в данный момент в голову приходит идея добавить к стилю кнопки background, как возможность внешне выделить один спойлер от другого
и давать этот выбор пользователю через диалоговое окно, вместо выбора названия открытой кнопки (которое по моему мнению, должно быть просто и всегда - Закрыть)
да и вообще кнопку можно построить не на основе input type='button'. а вообще сделать кликабельную картинку, которую может выбирать пользователь,
в общем вариантов полно
Отредактировано Romych (Ср, 27 Окт 2010 20:15:14)
в общем вариантов полно
Romych, пожалуйста, как будет возможность, придумайте! Вот скрипт из поста 5 действительно, работает во всех браузерах. Но в нем для меня много лишнего. И на кого рассчитаны заложенные 80% ширины? Конечно, это можно исправить, но ведь надо тоже узнавать как, уточнять... Дорабатывать пользователю самому, одним словом. А еще это промежуточное окно...
ИМХО самое верное - иметь два варианта спойлера. Один - примерно как из 5 поста, со всякими возможностями, и даже еще круче, как Вы предлагаете (ведь кому-то все это пригодится). А второй вариант - просто для работы, с уже готовыми названиями, без вывода этого окна (всего лишь выделил, нажал кнопку - и всё, готово!). Такое ведь нужно лишь как заменитель отсутствующего на наших форумах тега для скрытия части сообщения.
как заменитель отсутствующего на наших форумах тега для скрытия части сообщения.
А один из пользователей уже использовал спойлер так: видны лишь названия глав статьи, а сами главы спрятаны спойлером. Очень компактно!
И так ведь можно поместить в странице даже книжку. Но можно ли такое делать? Я имею в виду возможную перегрузку сервера, ведь получается нечто вроде файлохранилища... Есть ли ограничения?
помогите (можете говорить что у меня глаз нет но я уже обыскалась) киньте плииз ссылку поста, где написан скрипт спойлера в объявление (админ, инфа вся нажимаешь- открывается и закрывается кликом.) только вместо кнопок можно было вставить картинку как тут: http://gossip.rolka.su/
Сумерки
Здравствуйте.
помогите (можете говорить что у меня глаз нет но я уже обыскалась) киньте плииз ссылку поста, где написан скрипт спойлера в объявление (админ, инфа вся нажимаешь- открывается и закрывается кликом.) только вместо кнопок можно было вставить картинку как тут: http://gossip.rolka.su/
Здесь: Выпадающее меню для форума.
Вот скрипт из поста 5 действительно, работает во всех браузерах
Makarius
вот вам кроссбраузерный сокращёныый вариант спойлера, код которого кстати стал ещё немного короче, но при этом стабильнее:
любое количество символов под спойлером,
любое количество спойлеров в посте
любой браузер
<!--Spoiler v.2.3--> <script type="text/javascript"> function tag_spolier() {var FoundErrors = ''; var enterTITLE = prompt("Введите описание скрытого текста", 'Спойлер'); bbcode('[spoiler]',('|'+enterTITLE+'[/spoiler]'));} $(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 style=\'background-image:url("http://img706.imageshack.us/img706/1943/spoiler.gif")\' onclick="tag_spolier()"><img src="/i/blank.gif" alt="Спойлер"></td>'); $("div.post-content").map(function () { text = $(this).html(); if(text.indexOf("[/spoiler]" ) != -1) { spoilerr = /\[spoiler\]([^`]*?)\|(.*?)\[\/spoiler\]/gi $(this).html(text.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>
Отредактировано Romych (Пт, 5 Ноя 2010 12:21:28)
Romych, проверил на Опере и IE 8. Придраться не к чему! Ни на одной из бывших ловушек не спотыкается!
Вот видите, все Вам, оказывается, под силу!
Этот спойлер будет очень хорош для размещения длинных статей, с картинками и чем угодно другим (ни на чем "поймать" его пока не удалось).
Но вот если бы еще... Ведь в промежуточном окне прямо предлагается: "Введите описание скрытого текста". Это очень бы хорошо для ввода заголовков глав, и тогда текст превратился бы в столбик спойлеров. Очень удобно для чтения (или не чтения, а прокрутки). Но для описания выделено всего 22 символа. Маловато! Нельзя ли удлинить спойлер (пусть и на ширину текста, это будет для рассматриваемого случая вполне стильно), с соответственным увеличением количества знаков описания текста? То есть, проще говоря, заголовка?
А может, в скрипте достаточно что-то изменить самому, чтоб спойлер расширился? Тогда подскажите, пожалуйста!
Ведь появится новый инструмент для размещения в упакованном виде на странице форума достаточно больших документов. Можно даже назвать его не спойлером, а как-то понятнее...
Но вот если бы еще... Ведь в промежуточном окне прямо предлагается: "Введите описание скрытого текста". Это очень бы хорошо для ввода заголовков глав, и тогда текст превратился бы в столбик спойлеров. Очень удобно для чтения (или не чтения, а прокрутки). Но для описания выделено всего 22 символа. Маловато! Нельзя ли удлинить спойлер (пусть и на ширину текста, это будет для рассматриваемого случая вполне стильно), с соответственным увеличением количества знаков описания текста? То есть, проще говоря, заголовка?
А может, в скрипте достаточно что-то изменить самому, чтоб спойлер расширился? Тогда подскажите, пожалуйста!
Ведь появится новый инструмент для размещения в упакованном виде на странице форума достаточно больших документов. Можно даже назвать его не спойлером, а как-то понятнее...
из всего вышесказаного понял, что вы хотите чтоб описание спойлера автоматически подгонялось под количество букв и символов в описании
т.е. в самой кнопке спойлера
это легко реализуется
в скрипте найдите вот такую строку (она предпоследняя)
$(this).html(text.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:auto;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>"))
выделил красным назначение ширины кнопки, то значение которе есть меняем на - auto
и будет вам счастье , если только я вас правильно понял
mkusher
спасибо у меня всё работает)
Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер