在Firefox中在光标位置插入文本的Javascript代码? 用例
当我在搜索引擎中输入一个查询时,有时引用是很有用的 这是查询的一部分,因此引擎不会用无用的建议来打扰我 任务 这个操作非常频繁,我想用一个快捷方式来完成。 快捷方式部分不是问题所在,有一种方法可以将快捷方式指定给bookmarklet。 我不知道该怎么做在Firefox中在光标位置插入文本的Javascript代码? 用例,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,当我在搜索引擎中输入一个查询时,有时引用是很有用的 这是查询的一部分,因此引擎不会用无用的建议来打扰我 任务 这个操作非常频繁,我想用一个快捷方式来完成。 快捷方式部分不是问题所在,有一种方法可以将快捷方式指定给bookmarklet。 我不知道该怎么做 获取当前文本区域。我只知道光标在那里。 我不能假设任何ID等,我也不想安装任何挂钩 插入“”,并向后返回一个字符 我希望有一个1/2行程序可以放在bookmarklet中。解决方案 因为没人想回答,而我只是JavaScript的新手, 我决定看
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中快速插入一对引号