Skip to content

Instantly share code, notes, and snippets.

@ccampbell
Created October 13, 2012 17:24
Show Gist options
  • Save ccampbell/3885446 to your computer and use it in GitHub Desktop.
Save ccampbell/3885446 to your computer and use it in GitHub Desktop.
Extends mousetrap.js to add global bindings that still work in form fields. Just include this js after mousetrap.
/**
* adds a bindGlobal method to Mousetrap that allows you to
* bind specific keyboard shortcuts that will still work
* inside a text input field
*
* usage:
* Mousetrap.bindGlobal('ctrl+s', _saveChanges);
*/
Mousetrap = (function(Mousetrap) {
var _global_callbacks = {},
_original_stop_callback = Mousetrap.stopCallback;
Mousetrap.stopCallback = function(e, element, combo) {
if (_global_callbacks[combo]) {
return false;
}
return _original_stop_callback(e, element, combo);
};
Mousetrap.bindGlobal = function(keys, callback, action) {
Mousetrap.bind(keys, callback, action);
if (keys instanceof Array) {
for (var i = 0; i < keys.length; i++) {
_global_callbacks[keys[i]] = true;
}
return;
}
_global_callbacks[keys] = true;
};
return Mousetrap;
}) (Mousetrap);
Mousetrap=function(a){var d={},e=a.stopCallback;a.stopCallback=function(b,c,a){return d[a]?!1:e(b,c,a)};a.bindGlobal=function(b,c,e){a.bind(b,c,e);if(b instanceof Array)for(c=0;c<b.length;c++)d[b[c]]=!0;else d[b]=!0};return a}(Mousetrap);
@harry-008
Copy link

hi ,
i want to use mousetrap.js on text field and text area and want convert the word into some other word
for example :-
when we press a and it will convert it into other word
how can we do this with mousetrap.js

@harry-008
Copy link

hi,
on text field , when i press a or shift+a or g + a etc and it will convert into some other word . you can say translator.
how to do this on text field .

@sshmyg
Copy link

sshmyg commented Sep 15, 2017

Doesn't work macOS, chrome latest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment