From MozillaZine Knowledge Base
Jump to navigationJump to search
|
|
(One intermediate revision by the same user not shown) |
Line 1: |
Line 1: |
| ''Note: This is only tested with Firefox 0.9.1+, but should work with everything else. Change this note if it works for you ;)''
| | #REDIRECT [[Inserting text at cursor]] |
| | |
| ==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 <tt>aText</tt> string at the cursor position.
| |
| | |
| <pre>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")
| |
| }
| |
| }</pre>
| |
| | |
| Known restriction: <textbox> must be focused. If it isn't, you have to focus it temporarily.
| |
Latest revision as of 01:14, 12 March 2005