// ==UserScript== // @name GM_registerMenuCommand() accelerator tester // @namespace http://arantius.com/misc/greasemonkey/ // @description A flexible test script for examining if/how GM_rmc's accelerator keys work // @include about:blank#GM_rmc // @resource ui.html https://gist.github.com/raw/898642/ui.html // ==/UserScript== var windowId = String(Math.random()).substr(2); document.body.innerHTML = 'Window ID: '+ windowId + GM_getResourceText('ui.html'); var registerButtonEl = document.getElementById('register'); var modifiersContEl = document.getElementById('modifiers'); var acceleratorEl = document.getElementById('accelerator'); registerButtonEl.addEventListener('click', function() { var modifiers = []; var inputs = modifiersContEl.getElementsByTagName('input'); for (var i = 0, input = null; input = inputs[i]; i++) { if (input.checked) modifiers.push(input.value); } var accelerator = acceleratorEl.value; GM_registerMenuCommand( 'Menu Command w/ accelerator: ' + accelerator + '+' + modifiers.join('+'), function() { alert('You pressed ' + accelerator + '+' + modifiers.join('+') + '\nIn window: ' + windowId); }, accelerator, modifiers.join(' '), accelerator // re-use for access key ); }, false);