用例
当我在搜索引擎中输入查询时,有时引用查询的一部分很有用,因此引擎不会用无用的建议来打扰我。
任务
这个操作太频繁了,我想用一个快捷方式来做这个。快捷方式部分不是问题,有一种方法可以为小书签分配快捷方式。我不知道该怎么做
- 获取当前文本区域。我唯一知道的是光标在那里。我不能假设任何 id 等。另外,我不想安装任何钩子。
- 插入“”,后退一个字符。
我期待一个可以放在书签中的一/二衬里。
当我在搜索引擎中输入查询时,有时引用查询的一部分很有用,因此引擎不会用无用的建议来打扰我。
这个操作太频繁了,我想用一个快捷方式来做这个。快捷方式部分不是问题,有一种方法可以为小书签分配快捷方式。我不知道该怎么做
我期待一个可以放在书签中的一/二衬里。
由于没有人想回答,而且我只是 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 中快速插入一对引号。