1

Hotkey是否可以在's 范围内获取用户选择的文本?
定义在Addon/lib/main.js

var showHotKey = Hotkey({
    combo: "accel-f1",
    onPress: function() {
        Addon.saveText(window.getSelection().toString());
    }
});

错误 ..

error: Addon: An exception occurred.
ReferenceError: window is not defined
resource://org/Addon/lib/main.js 14
Traceback (most recent call last):
File "resource://gre/modules/commonjs/sdk/keyboard/observer.js", line 39, in handleEvent
    this._emit(event.type, event, event.target.ownerDocument.defaultView);
File "resource://gre/modules/commonjs/sdk/deprecated/events.js", line 123, in _emit
    return this._emitOnObject.apply(this, args);
File "resource://gre/modules/commonjs/sdk/deprecated/events.js", line 153, in _emitOnObject
    listener.apply(targetObj, params);
File "resource://gre/modules/commonjs/sdk/keyboard/hotkeys.js", line 103, in onKeypress
    hotkey();
File "resource://org/Addon/lib/main.js", line 14, in showHotKey<.onPress
    Addon.saveText(window.getSelection().toString());
4

1 回答 1

2

是的,最简单的方法是使用该selection模块。

var { Hotkey } = require("sdk/hotkeys");
var selection = require("sdk/selection");

var showHotKey = Hotkey({
    combo: "accel-f1",
    onPress: function() {
        console.error(selection.text);
    }
});

如果您需要更复杂的东西,请查看tabs.activeTab.attach(),其中有一个示例展示了如何与活动选项卡进行交互。

于 2013-09-17T22:54:49.517 回答