| | 346 | commands.addUserCommand(["gmcommand", "gmcmd"], "run Greasemonkey Command", //{{{ |
| | 347 | function(args, special) { |
| | 348 | var commander = GM_BrowserUI.getCommander(getBrowser().selectedTab.linkedBrowser.contentWindow); |
| | 349 | for (var i = 0; i < commander.menuItems.length; i++) { |
| | 350 | var menuItem = commander.menuItems[i]; |
| | 351 | if (menuItem.getAttribute("label") == args) { |
| | 352 | menuItem._commandFunc(); |
| | 353 | return; |
| | 354 | } |
| | 355 | } |
| | 356 | echoerr(args+" is not defined userscript command."); |
| | 357 | }, |
| | 358 | { |
| | 359 | completer: function(filter) { |
| | 360 | var commander = GM_BrowserUI.getCommander(getBrowser().selectedTab.linkedBrowser.contentWindow); |
| | 361 | var completions = []; |
| | 362 | var exp = new RegExp(".*" + filter + ".*"); |
| | 363 | for (var i = 0; i < commander.menuItems.length; i++) { |
| | 364 | var label = commander.menuItems[i].getAttribute("label"); |
| | 365 | if (!filter || exp.test(label)) { |
| | 366 | completions.push([label, label]); |
| | 367 | } |
| | 368 | } |
| | 369 | return [0, completions]; |
| | 370 | } |
| | 371 | } |
| | 372 | ); //}}} |