Inserting text at cursor
From MozillaZine Knowledge Base
Note: This is only tested with Firefox 0.9/1.0PR, but should work with everything else. Change this note if it works for you ;)
Problem
How do I insert some text at cursor position, just as if user typed it?
Solution
Let's say you have a focused <textbox> in current document. The following function will insert aText string at the cursor position.
function insertText(aText) { try { var command = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(command); if (controller && controller.isCommandEnabled(command)) { controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"]; params = params.createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", aText); controller.doCommandWithParams(command, params); } } catch (e) { dump("Can't do cmd_insertText! "); dump(e+"\n") } }
Known restriction: <textbox> must be focused. If it isn't, you have to focus it temporarily.