2013-09-17 1 views
1

Можно ли выделить выделенный текст пользователя в пределах области Hotkey?
Определено в Addon/lib/main.js:Доступ к выбранному тексту внутри объекта Hotkey

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()); 

ответ

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(), у которого есть пример, показывающий, как взаимодействовать с активной вкладкой в ​​целом.

+0

Спасибо! .. не знал о 'sdk/selection' – bobbyrne01