* @return boolean
*/
function textareaKeydown(target, event) {
- if (!event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey) {
+ if (!event.shiftKey && !event.altKey && !isCtrl(event)) {
if (event.keyCode == 9) { // 9 - Tab
// inspired by http://pallieter.org/Projects/insertTab/
if (target.setSelectionRange) {
}
+/** Check if Ctrl key (Command key on Mac) was pressed
+* @param KeyboardEvent|MouseEvent
+* @return boolean
+*/
+function isCtrl(event) {
+ return (event.ctrlKey || event.metaKey) && !event.altKey; // shiftKey allowed
+}
+
+
/** Send form by Ctrl+Enter on <select> and <textarea>
* @param KeyboardEvent
*/
function bodyKeydown(event, button) {
var target = event.target || event.srcElement;
- if (event.ctrlKey && (event.keyCode == 13 || event.keyCode == 10) && !event.altKey && !event.metaKey && /select|textarea|input/i.test(target.tagName)) { // 13|10 - Enter, shiftKey allowed
+ if (isCtrl(event) && (event.keyCode == 13 || event.keyCode == 10) && /select|textarea|input/i.test(target.tagName)) { // 13|10 - Enter
target.blur();
if (button) {
target.form[button].click();
*/
function bodyClick(event) {
var target = event.target || event.srcElement;
- if ((event.ctrlKey || event.shiftKey) && target.type == 'submit' && /input/i.test(target.tagName)) {
+ if ((isCtrl(event) || event.shiftKey) && target.type == 'submit' && /input/i.test(target.tagName)) {
target.form.target = '_blank';
setTimeout(function () {
- // if (event.ctrlKey) { focus(); } doesn't work
+ // if (isCtrl(event)) { focus(); } doesn't work
target.form.target = '';
}, 0);
}
* @return boolean
*/
function editingKeydown(event) {
- if ((event.keyCode == 40 || event.keyCode == 38) && event.ctrlKey && !event.altKey && !event.metaKey) { // 40 - Down, 38 - Up, shiftKey allowed
+ if ((event.keyCode == 40 || event.keyCode == 38) && isCtrl(event)) { // 40 - Down, 38 - Up
var target = event.target || event.srcElement;
var sibling = (event.keyCode == 40 ? 'nextSibling' : 'previousSibling');
var el = target.parentNode.parentNode[sibling];
*/
function selectClick(td, event, text, warning) {
var target = event.target || event.srcElement;
- if (!event.ctrlKey || /input|textarea/i.test(td.firstChild.tagName) || /^a$/i.test(target.tagName)) {
+ if (!isCtrl(event) || /input|textarea/i.test(td.firstChild.tagName) || /^a$/i.test(target.tagName)) {
return;
}
if (warning) {
if (!event) {
event = window.event;
}
- if (event.keyCode == 27 && !(event.ctrlKey || event.shiftKey || event.altKey || event.metaKey)) { // 27 - Esc
+ if (event.keyCode == 27 && !event.shiftKey && !event.altKey && !isCtrl(event)) { // 27 - Esc
td.innerHTML = original;
}
};
function whisperClick(event, field) {
var el = event.target || event.srcElement;
- if (/^a$/i.test(el.tagName) && !(event.button || event.ctrlKey || event.shiftKey || event.altKey || event.metaKey)) {
+ if (/^a$/i.test(el.tagName) && !(event.button || event.shiftKey || event.altKey || isCtrl(event))) {
field.value = el.firstChild.data;
field.previousSibling.value = decodeURIComponent(el.href.replace(/.*=/, ''));
field.nextSibling.style.display = 'none';