Вопрос

Предыстория

Я использую отправку формы POST вместо ссылок с объединенными аргументами внутри веб-приложения, поэтому я могу осуществлять контроль над вводом.

К сожалению, это означает, что пользователи не могут использовать известные им быстрые сочетания клавиш для открытия ссылок в новых окнах, например, щелчок кнопкой мыши или средний щелчок.

Проблема

У меня есть то, что кажется работоспособным способом использования jQuery для захвата ввода с помощью мыши и различных клавиш аккордов, основанных на Спецификация событий мыши W3C DOM:

 $("span#clickspan").click( function(event) {

   buttonpress = event.button;
   ctrlpress = event.ctrlKey;

    $("#clickresult").empty();
    $("#clickresult").append("<p>Click!</p>");
    $("#clickresult").append("<p>Button # " + buttonpress + " pressed!</p>");
    if (ctrlpress) {
        $("#clickresult").append("<p>Control-click!</p>");
    }

    //form submission code would go here

    event.preventDefault();

    }
 );

Я могу фиксировать щелчки по элементам управления таким способом (протестировано в Firefox 3 и IE7), и это правильно (?) сообщает о щелчках левой кнопкой мыши как о щелчках по кнопке мыши # 0, но по какой-то причине этот код по-прежнему не фиксирует средние щелчки по промежутку, а щелчки правой кнопкой мыши по-прежнему вызывают контекстное меню.Я бы хотел фиксировать, по крайней мере, средние клики.

Кто-нибудь может там помочь?

Что означает "контроль"

Проблема с получением отправки / ссылки с объединенными аргументами заключается в том, что любой может отредактировать адресную строку и ввести что угодно.Я уже беспокоился об аутентификации и валидации на стороне сервера.Это не поэтому я хочу работать с POST.

Я должен показывать пользователям только ту информацию, которая имеет смысл.Внутренние идентификаторы базы данных - нет.Я должен позволять пользователям взаимодействовать с приложением только значимыми способами.Произвольное редактирование адресной строки не относится к их числу.

Люди постоянно допускают опечатки.Однако, с точки зрения системы, нет никакой разницы между опечаткой в адресной строке и недостатком в логике приложения, и я бы предпочел не перекладывать ответственность за принятие решения о том, какая из них только что произошла, на пользователей.

Это было полезно?

Решение

Короткий ответ?Не могу этого сделать.

Длинный ответ? События мыши Javascript.Все еще не могу этого сделать.

В связи с этим возникает вопрос:а ты знаешь потребность использовать POST или вы просто хотеть кому?Единственная причина, по которой вам это нужно, - это длина строки запроса.Что касается желания, вы упомянули "контроль пользовательского ввода".Что именно это значит?

Вы никогда не должны полагаться на браузер при проверке входных данных. Вы можете сделать это там для удобства, но сервер всегда должен проверять входные данные.

Или причина в эстетичности (то есть в более коротких и "приятных" URL-адресах)?

Вы заново изобретаете колесо, которое называется гиперссылками.Я просто пытаюсь убедиться, что у вас есть чертовски веская причина для этого, потому что это контрпродуктивно, и вы никогда не получите такую же поддержку браузера и совместимость, как у реальных гиперссылок.Кроме того, вы, скорее всего, просто раздражаете своих пользователей тем, что вещи, от которых они ожидают, что они будут работать, не работают.нехорошо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top