在Firefox中的光标位置插入文本的Javascript代码?

时间:2013-07-24 09:13:39

标签: javascript firefox firefox-addon

用例

当我在搜索引擎中输入查询时,有时引用它是有用的 查询的一部分,所以引擎不会给我带来无用的建议。

任务

此操作非常频繁,我想用快捷方式执行此操作。 快捷方式部分不是问题,有一种方法可以为小书签分配快捷方式。 我不知道该怎么办

  1. 获取当前文本区域。我所知道的唯一的是光标就在那里。 我不能假设任何ids等。另外,我不想安装任何挂钩。
  2. 插入“”,然后向前移动一个字符。
  3. 我期待一个可以放入书签的一两个班轮。

1 个答案:

答案 0 :(得分:0)

解决方案

由于没有人想回答,我只是JavaScript的新手, 我决定看看是否有一个接近我想要的插件。 选择下降到Firemacs, 因为我还在使用它。

返回一个char的代码本身就是简单:

goDoCommand('cmd_charPrevious');

但是,插入文本的命令不起作用。 但粘贴命令再次简单:

goDoCommand('cmd_paste');

现在只剩下把'“”放在剪贴板中了。这个并不容易:

var str = Components.classes["@mozilla.org/supports-string;1"]
    .createInstance(Components.interfaces.nsISupportsString);
str.data = '""';

var trans = Components.classes["@mozilla.org/widget/transferable;1"]
    .createInstance(Components.interfaces.nsITransferable);
trans.addDataFlavor("text/unicode");
trans.setTransferData("text/unicode",str, str.data.length * 2);

var clipid = Components.interfaces.nsIClipboard;
var clip = Components.classes["@mozilla.org/widget/clipboard;1"]
    .getService(clipid);
clip.setData(trans,null,clipid.kGlobalClipboard);

然后我只是将此代码修补到扩展名而不是“Ctrl-h”绑定, 我不使用。问题解决了。现在我可以在Firefox中快速插入一对引号。