Многим админам наверняка хотелось бы иметь возможность отправки сообщений на форуме с помощью связки CTRL+ENTER ибо это очень удобная функция. Сам себе искал решение, нашел, теперь хочу с вами поделиться. В данном мини-анонсе я рассмотрю 2 способа реализации отправки сообщений с помощью CTRL+ENTER.
Впринципе описанный ниже способ 100% работает на стилях, основанных на prosilver, а вот на стилях на основе subsilver2 все не так гладко - в мозиле и хроме все без косяков, а в опере при использовании связки CTRL+ENTER открывается еще одно окно, в котором сообщение отправлено, а так же остается окно в котором вы еще находитесь в редакторе сообщений. Вообщем разобью инструкцию по основным стилям.
Для стилей на основе prosilver
- Инструкция для стандартного ответа в теме
Код: Выделить всё
<textarea <!-- IF S_UCP_ACTION and not S_PRIVMSGS and not S_EDIT_DRAFT -->name="signature"
Код: Выделить всё
class="inputbox">{MESSAGE}{DRAFT_MESSAGE}{SIGNATURE}</textarea>
Код: Выделить всё
class="inputbox" onKeyPress = "if (event.keyCode==10 || (event.ctrlKey && event.keyCode==13)) {document.getElementById('postform').post.click();}">{MESSAGE}{DRAFT_MESSAGE}{SIGNATURE}</textarea>
Код: Выделить всё
<input type="submit" accesskey="s" tabindex="6" name="post"
Код: Выделить всё
<input title="Ctrl+Enter" type="submit" accesskey="s" tabindex="6" name="post"
- Инструкция для стандартного Быстрого Ответа (не путать со похожим модом!!!)
Код: Выделить всё
class="inputbox"></textarea>
Код: Выделить всё
class="inputbox" onKeyPress = "if (event.keyCode==10 || (event.ctrlKey && event.keyCode==13)) {document.getElementById('postform').post.click();}"></textarea>
Код: Выделить всё
<input type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" class="button1" />
Код: Выделить всё
<input title="Ctrl+Enter" type="submit" accesskey="s" tabindex="6" name="post" value="{L_SUBMIT}" class="button1" />
- Инструкция для стандартного ответа в теме
Код: Выделить всё
>{MESSAGE}</textarea>
Код: Выделить всё
onKeyPress="if((event.keyCode==10)||((event.ctrlKey)&&(event.keyCode==13))) document.postform.post[0].click();"
- Инструкция для стандартного Быстрого Ответа (не путать со похожим модом!!!)
Код: Выделить всё
>{MESSAGE}</textarea>
Код: Выделить всё
onKeyPress="if((event.keyCode==10)||((event.ctrlKey)&&(event.keyCode==13))) document.postform.post[0].click();"
Во многих форумах наверняка подключен скрипт JQuery либо Mootools 1.1, таким образом можно реализовать отправку связкой CTRL+ENTER без особых усилий. Данное решение подходит для любых стилей.
Открыть
- Если у вас подключен JQuery, то добавляем
Код: Выделить всё
<!-- IF S_POST_ACTION or S_QUICK_REPLY -->
<script type="text/javascript">
$('#postform textarea').keypress(function(event) {
if ($(this).attr('name') == 'message' && (event.keyCode == 10 || (event.ctrlKey && event.keyCode == 13))) {
$('<input type="hidden" name="post" />').appendTo($('#postform'));
$('#postform').submit();
}
});
$('input[name="post"]').attr('title', 'Ctrl+Enter');
</script>
<!-- ENDIF -->
- Если у вас подключен Mootools 1.1, то добавляем
Код: Выделить всё
<!-- IF S_POST_ACTION or S_QUICK_REPLY -->
<script type="text/javascript">
$$('#postform textarea').addEvent('keypress', function(event) {
if ($(this).name == 'message' && (event.keyCode == 10 || (event.ctrlKey && event.keyCode == 13))) {
new Element('input').setProperties({'type': 'hidden', 'name': 'post'}).injectAfter($(this));
$('postform').submit();
}
});
$$('input[name="post"]').setProperty('title', 'Ctrl+Enter');
</script>
<!-- ENDIF -->