Страница 3 из 3

Re: Отправка сообщений нажатием Ctrl+Enter

Добавлено: 03 дек 2011, 18:13
vlad360
это для тех, у кого сообщение через div стоит

Re: Отправка сообщений нажатием Ctrl+Enter

Добавлено: 03 дек 2011, 18:16
Gold
Т.к. я не знаток JavaScript, специально проконсультировался по этому вопросу:
скобки точно не мешают в if, то есть их можно в данном примере и не ставить, но визуально отделяют, легче для понимания приоритетности операций.

Фигурные скобки после условия if - если бы там была не одна команда document.postform.post[0].click(), то да, фигурные скобки обязательны, так как надо было бы отделить, что те-то команды относятся к if, но тут одна - она так или иначе к if идет

Re: Отправка сообщений нажатием Ctrl+Enter

Добавлено: 03 дек 2011, 18:31
vlad360
Gold
у меня не идет как ни странно

Re: Отправка сообщений нажатием Ctrl+Enter

Добавлено: 05 дек 2011, 01:13
Alice
vlad360 писал(а):Gold
у меня не идет как ни странно

Вообще или в варианте из первого поста темы?

Re: Отправка сообщений нажатием Ctrl+Enter

Добавлено: 05 дек 2011, 15:48
vlad360
Alice
в вариенте их первого и из любых постов в данной теме кроме своего который выложил.
Однако появился такой глюк иногда когда редактируешь свое сообщение исчезает весь bb код и вообще весь текст в некоторых сообщениях только так

Re: Отправка сообщений нажатием Ctrl+Enter

Добавлено: 05 дек 2011, 20:01
GoDFaTHeR
vlad360 писал(а):Однако появился такой глюк иногда когда редактируешь свое сообщение исчезает весь bb код и вообще весь текст в некоторых сообщениях только так

значит не правильно установлено

Отправка сообщений нажатием Ctrl+Enter. Продолжение

Добавлено: 29 фев 2016, 23:14
Alice
Лежит в архиве тема с аналогичным называнием: viewtopic.php?f=12&t=978
Написать в нее нельзя, закрыта.
А у меня дополнения возникли. Мне доводилось делать эту модификацию шаблонов на некоторых форумах. Ставила, как многие, не задумываясь, что написано в коде. Вроде, работало.
И тут в очередной раз потребовалось поставить это дополнение на один форум - а оно бац! И не работает в быстром ответе. Напрочь. Причем, в уже отработанном для меня стиле е-Теч, в котором я эту модификацию раза 3, наверно, делала в разных форумах.
Перечитала тему. Сто раз перепроверила, точно ли по инструкции все сделала. Все правильно, но не работает.
Тогда попробовала вариант, который предложил в той теме vlad360. Заработало.
Почитала, что писал Gold про ненужность фигурных скобок в варианте vlad360. Убрала фигурные скобки. Тоже работает.
Задумалась, а что вообще написано в коде у Gold в переводе на человеческий язык...
Код: Выделить всё
onKeyPress="if((event.keyCode==10)||((event.ctrlKey)&&(event.keyCode==13))) document.postform.post[0].click();"

Получается: "Если нажат шифт или если нажаты контрол и энтер, то отправить сообщение".
И тут я подумала. А зачем же проверять, нажат ли шифт, и вообще отправлять сообщение по нажатию шифт?
И к каким же глюкам приведет код, если на шифт, с помощью которого пользователь может выделять какие-то части сообщения при наборе, повесить еще и отправку сообщения?
И подумав так, я строчку, о которой дискутировали vlad360 и Gold, упростила до
Код: Выделить всё
onKeyPress="if(event.ctrlKey && event.keyCode==13) document.postform.post[0].click();"

То бишь в переводе на человеческий до: "Если нажат контрол и энтер, то отправить сообщение".
Итого, всё работает. :) В процессе тестирования. Пока ничего не глючит.


П.С. Слепите, пожалуйста, мое сообщение с первой темой про отправку сообщений нажатием Ctrl+Enter.
Уж пардон, я бы туда написала о своем варианте, да тема в архиве. :)

Re: Отправка сообщений нажатием Ctrl+Enter. Продолжение

Добавлено: 01 мар 2016, 01:22
GoDFaTHeR
перенес в модификации

Re: Отправка сообщений нажатием Ctrl+Enter. Продолжение

Добавлено: 01 мар 2016, 01:32
Alice
П.С. Ай-я-яй! Нашла у себя ошибку, а предыдущее сообщение отредактировать уже не могу.
Неправильно перевела на человеческий слова :-[
Код: Выделить всё
event.keyCode==10

Это не шифт. :-[ 0х10 - шифт в 16-ном коде. http://umi-cms.spb.su/ref/javascript/251
А 10 - это энтер для Вебкит. https://bugs.dojotoolkit.org/ticket/12679
И правильный перевод строчки от Gold:
"Если нажат энтер (для вебкит) или если нажаты контрол и энтер, то отправить сообщение".
Ну, и всё равно получается бред для Вебкит... Ему же, выходит, не скомандовали, что для отправки сообщения еще и контрол нажат должен быть.
Значит, правильная запись условия будет:
Код: Выделить всё
if ((event.keyCode==13 || event.keyCode==10) && event.ctrlKey)

"Если нажат энтер (кей код которого 13 или 10 для вебкита) и контрол, то...".
А вот про "то" тоже интересно выходит. "То" для быстрого ответа и для обычного ответа должны быть разные.

Если вместо команды
Код: Выделить всё
document.postform.post[0].click();
написать что-нибудь типа:
Код: Выделить всё
alert('Нажаты контрол и энтер');

то и в форме обычного ответа, и в форме быстрого ответа после нажатия контрол + энтер выскочит соответствующее сообщение.
Т.е. код
Код: Выделить всё
onKeyPress ="if ((event.keyCode==13 || event.keyCode==10) && event.ctrlKey) alert('Нажаты контрол и энтер');"

отрабатывается нормально. А вот если вместо алерта поставить код
Код: Выделить всё
document.postform.post[0].click();
то форма быстрого ответа с ним дружить не желает. А если убрать прямое обращение к объекту через квадратные скобочки, то все работает.

То есть. Для обычного ответа (шаблон posting_body.html) у меня получился такой вариант спорной строчки:
Код: Выделить всё
onKeyPress="if ((event.keyCode==13 || event.keyCode==10) && event.ctrlKey) document.postform.post[0].click();"

А для быстрого ответа (шаблон quick_reply.html), такой:
Код: Выделить всё
onKeyPress="if((event.keyCode==13 || event.keyCode==10) && event.ctrlKey) document.postform.post.click();"


В таком варианте тоже всё работает. :)

Здесь поставила, можете проверить, что все ок: http://hockeyprim.80lvl.ru/index.php

Re: Отправка сообщений нажатием Ctrl+Enter. Продолжение

Добавлено: 19 мар 2016, 09:32
anya
"Alice" писал(а):
Здесь поставила, можете проверить, что все ок: http://hockeyprim.80lvl.ru/index.php


Спасибо за разъяснение..... thumbs up