-1

用例

当我在搜索引擎中输入查询时,有时引用查询的一部分很有用,因此引擎不会用无用的建议来打扰我。

任务

这个操作太频繁了,我想用一个快捷方式来做这个。快捷方式部分不是问题,有一种方法可以为小书签分配快捷方式。我不知道该怎么做

  1. 获取当前文本区域。我唯一知道的是光标在那里。我不能假设任何 id 等。另外,我不想安装任何钩子。
  2. 插入“”,后退一个字符。

我期待一个可以放在书签中的一/二衬里。

4

1 回答 1

0

解决方案

由于没有人想回答,而且我只是 JavaScript 的新手,我决定看看是否有一个插件可以接近我想要的。选择落到了Firemacs,因为无论如何我都在使用它。

后退一个字符的代码本身很简单:

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 中快速插入一对引号。

于 2013-07-24T12:49:48.247 回答