Код: Выделить всё
password=prompt('Please enter password to view this message...',' ');
' '
добавляет его в диалоговое окно.С вашего позволения могу предложить замену с небольшими косметическими правками.
Первый вариант. Просто исправленный:
Код: Выделить всё
<div style="margin:20px;margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">
<b>Spoiler</b>: <input type="button" value="Show" style="width:45px;font-size:10px;margin:0;padding:0;" onclick="
password=prompt('Please enter password to view this message...','');
if (password=='{SIMPLETEXT}')
{
alert('Password Accepted!');
if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '')
{
this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';
this.innerText = '';
this.value = 'Hide'; }
else
{
this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none';
this.innerText = '';
this.value = 'Show';
}
}
">
</div>
<div class="alt2" style="margin:0;padding:6px;border:1px inset;">
<div style="display: none;">{TEXT}</div>
</div>
</div>
Второй вариант. Запрос пароля только при открытии спойлера (что как бы более логично):
Код: Выделить всё
<div style="margin:20px;margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">
<b>Spoiler</b>: <input type="button" value="Show" style="width:45px;font-size:10px;margin:0;padding:0;" onclick="
if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '')
{
password=prompt('Please enter password to view this message...','');
if (password=='{SIMPLETEXT}')
{
alert('Password Accepted!');
this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';
this.innerText = '';
this.value = 'Hide';
}
}
else
{
this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none';
this.innerText = '';
this.value = 'Show';
}
">
</div>
<div class="alt2" style="margin:0;padding:6px;border:1px inset;">
<div style="display: none;">{TEXT}</div>
</div>
</div>
Третий вариант. Такой же как и второй, но с выводом сообщения о вводе неправильного пароля:
Код: Выделить всё
<div style="margin:20px;margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">
<b>Spoiler</b>: <input type="button" value="Show" style="width:45px;font-size:10px;margin:0;padding:0;" onclick="
if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '')
{
password=prompt('Please enter password to view this message...','');
if (password=='{SIMPLETEXT}')
{
alert('Password Accepted!');
this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';
this.innerText = '';
this.value = 'Hide';
} else {
alert('Password Not Accepted!');
}
}
else
{
this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none';
this.innerText = '';
this.value = 'Show';
}
">
</div>
<div class="alt2" style="margin:0;padding:6px;border:1px inset;">
<div style="display: none;">{TEXT}</div>
</div>
</div>
Четвёртый вариант. Всё тоже самое что в предыдущем, но без окна с подтверждением правильного ввода пароля:
Код: Выделить всё
<div style="margin:20px;margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">
<b>Spoiler</b>: <input type="button" value="Show" style="width:45px;font-size:10px;margin:0;padding:0;" onclick="
if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '')
{
password=prompt('Please enter password to view this message...','');
if (password=='{SIMPLETEXT}')
{
this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';
this.innerText = '';
this.value = 'Hide';
} else {
alert('Password Not Accepted!');
}
}
else
{
this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none';
this.innerText = '';
this.value = 'Show';
}
">
</div>
<div class="alt2" style="margin:0;padding:6px;border:1px inset;">
<div style="display: none;">{TEXT}</div>
</div>
</div>
Имхо, самый логичный из вариантов - последний.
После ввода правильного пароля спойлер сразу открывается, если неправильный - выводится сообщение. Закрытие происходит без ввода пароля, вдруг юзеру понадобится закрыть спойлер, зачем заставлять человека снова вводить пароль?...