Спойлеры в instantcms не работают в браузере safari
Но, как выяснилось, на эппловых устройствах он не работает. Ни на мобильных устройствах ни на ноутбуках.
Я поставил даже сафари для винды — на ней тоже не работает.
Спойлер видно, выглядит также, как на остальных браузерах, но при нажатии скрытый текст не появляется, просто плюс в кнопке превращается в минус.
Кто имеет тайные знания об устройстве сафари? Может подскажете, как решить эту проблему?
Спойлер видно, выглядит также, как на остальных браузерах, но при нажатии скрытый текст не появляется, просто плюс в кнопке превращается в минус.
Тоже самое, этот браузер глючный какой-то, им кто-то пользуется? В нем даже ютуб не работает.
Несчастные эппловладельцы вынуждены им пользоваться.Тоже самое, этот браузер глючный какой-то, им кто-то пользуется? В нем даже ютуб не работает.
Со спойлерами на инстанте такой метод не прокатывает…но если его проигнорировать и продолжить просмотр сайта то вполне можно пользоваться.
содержимое спойлера
Если в новой версии двойки не открывается, вероятно там какой нибудь из скриптов влияет, в консоли ошибок нет?
Спойлеры из первой ветки нормально открываются. Они на яваскрипте:Если в новой версии двойки не открывается, вероятно там какой нибудь из скриптов влияет, в консоли ошибок нет?
if (!$title) { $title = $_LANG['SPOILER']; } $str .= '<div class="bb_tag_spoiler">'; $str .= '<div class="spoiler_title"> <strong>'.$this->cleanAttrValue($title).'</strong> <input style="margin-left:10px" type="button" onclick="$(this).parent(\'div\').parent(\'div\').find(\'.spoiler_body\').slideToggle(); " value="'.$_LANG['SHOW'].'" /> </div>'; $str .= '<div class="spoiler_body" style="display:none">'; $str .= $this -> get_html($elem['val']); $str .= '</div>'; $str .= '</div>'; return $str;
return '<div class="spoiler"><input tabindex="-1" type="checkbox" id="'.$id.'"><label for="'.$id.'">'.$title.'</label><div class="spoiler_body">'.$content.'</div></div>';
Чекбокс не чекается по-видимому.Никаких ошибок в консоли. Просто не открывается.
Чекается. Плюс ни минус меняется.Чекбокс не чекается по-видимому.
Начинаю в консоли убирать галки с каких-либо свойств (все равно каких, цвет шрифта, дисплей) — спойлер открывается.
Мистика…
Да, работает.А тут работает переключатель?
Провел эксперимент. Сделал html файлик как тут Pocus рассказывал: instantcms.ru/forum/thread26743-1.html
Вот так работает и в хроме и в сафари:
<style> .spoiler > input + .box { display: none; } .spoiler > input:checked + .box { display: block; } </style> <div class="spoiler"> <input type="checkbox" > <div class="box"> Текст сообщения в спойлере. </div> </div>
<style> .spoiler > input + label + .box { display: none; } .spoiler > input:checked + label + .box { display: block; } </style> <div class="spoiler"> <input type="checkbox" id = "111111"> <label for="111111">Spoiler</label><div class="box"> Текст сообщения в спойлере. </div> </div>
content = this.getSelectionHtml(); spoiler_name = prompt('Название спойлера', 'Спойлер'); spoiler = '<div class="splr"><input style="padding: 3px;" type="button" onclick="$(this).parent(\'div\').find(\'.spoiler_body\').slideToggle();" value="'+spoiler_name+'">'+ '<div class="spoiler_body" style="display: none">'+content+'</div></div>'; this.insertHtmlAdvanced(spoiler);
Если нет особых причин, можно на 1 уменьшить количество элементов и селекторов (<div class="bb_tag_spoiler">)В общем взял код от спойлера из первой ветки:
Ну и скриптику тогда не придётся искать и родителя и дедушку кнопки:
<input style="margin-left:10px" onclick="$(this).parent('div').next('.spoiler_body').slideToggle(); " value="Показать" type="button">
Спасибо, вот так заработало:
'<input style="margin-left:10px" onclick="$(this).next(\'.spoiler_body\').slideToggle(100); " value="'+spoiler_name+'" type="button"><div class="spoiler_body" style="display: none">' + content + '</div>'