Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер


Обновленный спойлер

Сообщений 61 страница 80 из 328

61

Romych написал(а):

хотя если честно пока вариантов в голове нет

А может, тогда мне применить другой? Но как узнать, что там не выявятся такие же проблемы? Или другие?
А Ваш спойлер больно уж хорош, и многие уже его используют! Только не все видят.

0

62

Makarius
ещё раз исправил версию обновлённого спойлера из 42 поста (теперь актуальная версия v.2.2)
сейчас работает:
и с квадратными скобками внутри,
и с любым количеством символов под спойлером,
и с двумя спойлерами в одном посте

единственное не тестировал в ИЕ

спасибо вам за активное выявление багов ;)

0

63

Romych, новая версия прекрасно работает и с десятками квадратных скобок, и со слешами где угодно, в т.ч. и в конце, и с текстом... ну, пробовал порядка 100 000 знаков - и нормально!
И в одном посте можно ставить хоть 10 спойлеров (больше не пробовал), что тоже удобно: можно в заголовке спойлера указывать, то ли это примечание, то ли математическая часть, и т.д. Хотя они этого делать явно не будут, я уж знаю своих форумчан...
Правда, если один спойлер окажется внутри другого - получаются забавные глюки, но это уже извращение какое-то... на практике, вряд ли они даже два отдельных будут использовать. Читать подробно - вот все, что требуется.

А что в IE 8 по-прежнему не видно даже значка - ИМХО пусть переходят на другие браузеры, дался им этот гейтсовский браузер! Или же обходятся без этого удобства. В конце концов, выбор мы им даем.
В общем, большое спасибо за v.2.2!

0

64

Вечера

После вставки нового скрипта спойлера - прежний был полностью заменён - получилась вот такая ерунда - две кнопки со спойлерами. Может прежний скрипт плохо вычистился?

http://i5.fastpic.ru/thumb/2010/1025/8e/ece74bfabee007daef2605a126de7f8e.jpeg

Отредактировано Linnan (Пн, 25 Окт 2010 17:14:59)

0

65

Linnan
Здравствуйте.

Linnan написал(а):

После вставки нового скрипта спойлера - прежний был полностью заменён - получилась вот такая ерунда - две кнопки со спойлерами. Может прежний скрипт плохо вычистился?

Давайте адрес форума.

0

66

rps написал(а):

Здравствуйте.

Здравствуйте, rps! Может, глянете свежим глазом на этот новый скрипт - как выяснилось, почему-то иногда спойлер не срабатывает. Даже в Опере (насчет IE 8 мы уже смирились...). Видимо, кроме скобок (но это устранено), ему что-то еще не нравится, но что именно - как я ни пытался, выловить не смог.

Отредактировано Makarius (Вт, 26 Окт 2010 09:03:13)

0

67

rps
http://endlesssleep.mybb.ru/ можно и старый спойлер вернуть, только я его скрипта не знаю

0

68

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>

Оставьте один.

0

69

Makarius
Здравствуйте.

Makarius написал(а):

Здравствуйте, rps! Может, глянете свежим глазом на этот новый скрипт - как выяснилось, почему-то иногда спойлер не срабатывает. Даже в Опере (насчет IE 8 мы уже смирились...). Видимо, кроме скобок (но это устранено), ему что-то еще не нравится, но что именно - как я ни пытался, выловить не смог.

Ставьте в ХТМЛ-низ из 5 сообщения, всё остальное удаляйте. Этот вариант уже отточен и работает во всех браузерх.
Версия с регулярными выражениями Вам ничего не даст, кроме сокращения длины скрипта. Зато добавите массу новых проблем и глюков. Не вижу в этом смысла.

+1

70

rps
спасибо. Значит вместо удаления старого спойлера почему-то новый рядом встал

0

71

rps написал(а):

Ставьте в ХТМЛ-низ из 5 сообщения, всё остальное удаляйте. Этот вариант уже отточен и работает во всех браузерах

Здравствуйте, rps!
Пока проверил сам (но 80% заменил на 99%, вместо "закрытая..." вставил "Читать всё", вместо второго - "Закрыть"). Вроде работает со всеми предыдущими ловушками, и даже поддерживает спойлер в спойлере.
Неудобство - выскакивает ненужное окно, но просто сразу жмем Ок...
Теперь запущу для проверки всеми. А то получается, что браузеры разные не только названиями...
Спасибо!

0

72

rps написал(а):

Ставьте в ХТМЛ-низ из 5 сообщения, всё остальное удаляйте. Этот вариант уже отточен и работает во всех браузерх.
Версия с регулярными выражениями Вам ничего не даст, кроме сокращения длины скрипта. Зато добавите массу новых проблем и глюков. Не вижу в этом смысла.

скрипт из 5 поста тоже далеко неидеален, тут ещё не реализованы две задачи, которые периодически спрашивают:

1. несрабатывание спойлера внутри тега [code)
2. возможность изменения дизайна кнопки

по-первому пункту реализуемо только через регулярное выражение (которое здесь охаяли), либо в движке php править
если без регулярки по-любому не обойтись, тогда смысл делать огромный скрипт, с кучей абсолютно ненужных условий и циклов?
регулярка конечно сложная вещь, но через неё и можно творить чудеса

по второму пункту в данный момент в голову приходит идея добавить к стилю кнопки background, как возможность внешне выделить один спойлер от другого
и давать этот выбор пользователю через диалоговое окно, вместо выбора названия открытой кнопки (которое по моему мнению, должно быть просто и всегда - Закрыть)
да и вообще кнопку можно построить не на основе input type='button'. а вообще сделать кликабельную картинку, которую может выбирать пользователь,
в общем вариантов полно

Отредактировано Romych (Ср, 27 Окт 2010 20:15:14)

+1

73

Romych написал(а):

в общем вариантов полно

Romych, пожалуйста, как будет возможность, придумайте! Вот скрипт из поста 5 действительно, работает во всех браузерах. Но в нем для меня много лишнего. И на кого рассчитаны заложенные 80% ширины? Конечно, это можно исправить, но ведь надо тоже узнавать как, уточнять... Дорабатывать пользователю самому, одним словом. А еще это промежуточное окно...

ИМХО самое верное - иметь два варианта спойлера. Один - примерно как из 5 поста, со всякими возможностями, и даже еще круче, как Вы предлагаете (ведь кому-то все это пригодится). А второй вариант - просто  для работы, с уже готовыми названиями, без вывода этого окна (всего лишь выделил, нажал кнопку - и всё, готово!). Такое ведь нужно лишь как заменитель отсутствующего на наших форумах тега для скрытия части сообщения.

0

74

Makarius написал(а):

как заменитель отсутствующего на наших форумах тега для скрытия части сообщения.

А один из пользователей уже использовал спойлер так: видны лишь названия глав статьи, а сами главы спрятаны спойлером. Очень компактно!

И так ведь можно поместить в странице даже книжку. Но можно ли такое делать? Я имею в виду возможную перегрузку сервера, ведь получается нечто вроде файлохранилища... Есть ли ограничения?

0

75

помогите (можете говорить что у меня глаз нет но я уже обыскалась) киньте плииз ссылку поста, где написан скрипт спойлера в объявление (админ, инфа вся нажимаешь- открывается и закрывается кликом.) только вместо кнопок можно было вставить картинку как тут: http://gossip.rolka.su/

0

76

Сумерки
Здравствуйте.

Сумерки написал(а):

помогите (можете говорить что у меня глаз нет но я уже обыскалась) киньте плииз ссылку поста, где написан скрипт спойлера в объявление (админ, инфа вся нажимаешь- открывается и закрывается кликом.) только вместо кнопок можно было вставить картинку как тут: http://gossip.rolka.su/

Здесь: Выпадающее меню для форума.

0

77

Makarius написал(а):

Вот скрипт из поста 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)

+2

78

Romych, проверил на Опере и IE 8. Придраться не к чему! Ни на одной из бывших ловушек не спотыкается!
Вот видите, все Вам, оказывается, под силу!
Этот спойлер будет очень хорош для размещения длинных статей, с картинками и чем угодно другим (ни на чем "поймать" его пока не удалось).
Но вот если бы еще... Ведь в промежуточном окне прямо предлагается: "Введите описание скрытого текста". Это очень бы хорошо для ввода заголовков глав, и тогда текст превратился бы в столбик спойлеров. Очень удобно для чтения (или не чтения, а прокрутки). Но для описания выделено всего 22 символа. Маловато! Нельзя ли удлинить спойлер (пусть и на ширину текста, это будет для рассматриваемого случая вполне стильно), с соответственным увеличением количества знаков описания текста? То есть, проще говоря, заголовка?
А может, в скрипте достаточно что-то изменить самому, чтоб спойлер расширился? Тогда подскажите, пожалуйста!
Ведь появится новый инструмент для размещения в упакованном виде на странице форума достаточно больших документов. Можно даже назвать его не спойлером, а как-то понятнее...

0

79

Makarius написал(а):

Но вот если бы еще... Ведь в промежуточном окне прямо предлагается: "Введите описание скрытого текста". Это очень бы хорошо для ввода заголовков глав, и тогда текст превратился бы в столбик спойлеров. Очень удобно для чтения (или не чтения, а прокрутки). Но для описания выделено всего 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
и будет вам счастье ;) , если только я вас правильно понял

+3

80

mkusher
спасибо  :glasses: у меня всё работает)

0


Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер