Very odd. I just tested the following code, and it works for me:
var aCommand = "cmd_copy";
var browserWindow =
Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow("navigator:browser");
var controller =
browserWindow.document.commandDispatcher.getControllerForCommand(aCommand);
if(controller && controller.isCommandEnabled(aCommand)) {
controller.doCommand(aCommand);
}
- Blair
On Mon, Oct 13, 2008 at 10:13 AM, Sunny <[EMAIL PROTECTED]> wrote:
>
> I have this sort of working, but not as I'd like. It seems that
> getControllerForCommand always fails and I can't find a way to access
> the goDoCommand (which is dumb). See below for my current
> implementation that calls getControllers. Note that I must also pas a
> null type of the getMostRecentWindow. I then iterate through all of
> the controllers and doCommand for the first one that claims to support
> it. There must be an easier and more effective way, but the
> documentation for XUL is a mess for the novice and Ubiquity doesn't
> seem to have the necessary built-in stuff from the
> globalOverlay.js.
>
> Any help would be greatly appreciated!!!
>
>
> function doTheCommand(cmd) {
> var wm = Components.classes["@mozilla.org/appshell/window-mediator;
> 1"]
> .getService(Components.interfaces.nsIWindowMediator);
> var window = wm.getMostRecentWindow(null);
> //var controller;
> //
> window.document.commandDispatcher.getControllerForCommand(cmd,controller);
>
> var controllers=window.document.commandDispatcher.getControllers();
> for(i=0;i<controllers.getControllerCount();i++) {
> var controller=controllers.getControllerAt(i);
> if(controller.supportsCommand(cmd)) {
> controller.doCommand(cmd);
> displayMessage(cmd+"run");
> break;
> }
> }
> }
>
>
> function cmd_close() {
> doTheCommand("cmd_close");
> }
> function cmd_closeOtherTabs() {
> doTheCommand("cmd_closeOtherTabs");
> }
> function cmd_closeWindow() {
> doTheCommand("cmd_closeWindow");
> }
> function cmd_copy() {
> doTheCommand("cmd_copy");
> }
>
> ....etc....
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"ubiquity-firefox" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/ubiquity-firefox?hl=en
-~----------~----~----~----~------~----~------~--~---