Доброй ночи.
Вопрос следущий. Нужен срочно спойлер для форума (вот форум - http://imperiall.1bb.ru/ ), но проблема в том что у меня нет доступа к PHP-файлам форума, тоесть спойлер возможено создать только средствами JavaScript
Пробывал несколько вариантов - ни один не подходит...
Уважаемые мастера, может есть у вас мысли по этому поводу, а то замаялся я с этим спойлером
1. Haktar - 05 Декабря, 2008 - 20:41:13 - перейти к сообщению
2. Furax - 05 Декабря, 2008 - 23:57:18 - перейти к сообщению
Что понимается под спойлером?
3. Haktar - 06 Декабря, 2008 - 15:09:41 - перейти к сообщению
Furax пишет:
Что понимается под спойлером?
Спойлер это скрытый текст. Нажимаеш на кнопку и текст появляется
4. Haktar - 07 Декабря, 2008 - 18:30:18 - перейти к сообщению
Никаких идей?
5. Furax - 08 Декабря, 2008 - 08:43:00 - перейти к сообщению
Подобных скриптов полно. Но не совсем понятно, как надо вычленить ту часть, что надо скрыть, из готового HTML-файла, к которому и доступа-то нет...
6. Systemnik - 08 Декабря, 2008 - 11:13:34 - перейти к сообщению
Haktar,
сделать будет легко, если каждый из ббтегов вашего "спойлера",
будет иметь разный id у своего элеммента, тобишь так:
Есть бб тег [spoiler][/spoiler], скриптом он заменяется на <div style="..." id="spoilers1"></div> для последующего дива на страничке соответственно
spoilers2 тогда нужно будет понасаздавать для каждого по кнопочке:
<input type="button" onClick="hide(1);" value="Скрыть этот спойлер">
Ну и по подобию делаете функцию show и кнопочку, но боюсь, имея доступ только средствами JS, вам будет тяжело реализовать вставку кнопочек, а еще сложнее реализовать bb код spoiler на JS. Это реализуемо, но сложно.
сделать будет легко, если каждый из ббтегов вашего "спойлера",
будет иметь разный id у своего элеммента, тобишь так:
Есть бб тег [spoiler][/spoiler], скриптом он заменяется на <div style="..." id="spoilers1"></div> для последующего дива на страничке соответственно
spoilers2 тогда нужно будет понасаздавать для каждого по кнопочке:
<input type="button" onClick="hide(1);" value="Скрыть этот спойлер">
CODE:
function hide(id)
{
var spoiler = document.getElementById('spoilers' + id);
spoiler.style.display = 'none';
}
{
var spoiler = document.getElementById('spoilers' + id);
spoiler.style.display = 'none';
}
Ну и по подобию делаете функцию show и кнопочку, но боюсь, имея доступ только средствами JS, вам будет тяжело реализовать вставку кнопочек, а еще сложнее реализовать bb код spoiler на JS. Это реализуемо, но сложно.
7. Haktar - 12 Декабря, 2008 - 20:38:56 - перейти к сообщению
Вот такое непонятно что, я соорудил
Systemnik
Header
Кнопка:
quick_reply_box_open
Понимаю, понимаю что это сделано "ногами"
Вообще всё нормально работает, кроме одного - на странице форума (в топике) нормально раскрываеться только самый верхний спойлер, тогда как последующие тупо стоят открытыми...
Systemnik
Header
CODE:
<script type="text/javascript" src="http://demos.mootools.net/demos/mootools.js"></script>
<script type="text/javascript">
window.addEvent('domready', function() {
var myVerticalSlide = new Fx.Slide('vertical_slide');
myVerticalSlide.hide();
$('v_toggle').addEvent('click', function(e){
e.stop();
myVerticalSlide.toggle();
});
});
</script>
<script language='javascript' type='text/javascript'>
function AddSelectedText(BBOpen, BBClose) {
if (document.REPLIER.Post.caretPos) document.REPLIER.Post.caretPos.text = BBOpen + document.REPLIER.Post.caretPos.text + BBClose;
else document.REPLIER.Post.value += BBOpen + BBClose;
document.REPLIER.Post.focus()
}
function InsertSpoil(BBcode) {
AddSelectedText('[doHTML]<a href="#" id="v_toggle" style="display:block">Развернуть Спойлер</a><div id="vertical_slide">','</div>[/doHTML]');
}
function storeCaret(textEl) {
if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}
</script>
<script type="text/javascript">
window.addEvent('domready', function() {
var myVerticalSlide = new Fx.Slide('vertical_slide');
myVerticalSlide.hide();
$('v_toggle').addEvent('click', function(e){
e.stop();
myVerticalSlide.toggle();
});
});
</script>
<script language='javascript' type='text/javascript'>
function AddSelectedText(BBOpen, BBClose) {
if (document.REPLIER.Post.caretPos) document.REPLIER.Post.caretPos.text = BBOpen + document.REPLIER.Post.caretPos.text + BBClose;
else document.REPLIER.Post.value += BBOpen + BBClose;
document.REPLIER.Post.focus()
}
function InsertSpoil(BBcode) {
AddSelectedText('[doHTML]<a href="#" id="v_toggle" style="display:block">Развернуть Спойлер</a><div id="vertical_slide">','</div>[/doHTML]');
}
function storeCaret(textEl) {
if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}
</script>
Кнопка:
quick_reply_box_open
CODE:
<input type='button' class='codebuttons' style='font-weight:bold' title='Поместить текст (изображение) в тег Спойлера, разворачивание-сворачивания текста (изображения)' value='[SPOILER]' onClick="InsertSpoil('SPOILER')" />
Понимаю, понимаю что это сделано "ногами"
Вообще всё нормально работает, кроме одного - на странице форума (в топике) нормально раскрываеться только самый верхний спойлер, тогда как последующие тупо стоят открытыми...
8. Furax - 13 Декабря, 2008 - 02:34:57 - перейти к сообщению
Haktar
А как форум форматирует спойлеры? divы с параметром id, равным 'v_toggle'? Так нельзя - несколько элементов с одним id...
А как форум форматирует спойлеры? divы с параметром id, равным 'v_toggle'? Так нельзя - несколько элементов с одним id...