2014-06-13 3 views
0

Как использовать getSelection?Как использовать getSelection?

Он не возвращает выбранный текст:

function pageContextMenu (event) { 

    var window = require("sdk/window/utils").getMostRecentBrowserWindow(); 

    var stringSelection = window.getSelection(); 
    console.log(stringSelection.toString()); 
} 
    window.document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", pageContextMenu); 
+0

Возможно, выбор " popupshowing ", поскольку событие для присоединения вызывает побочные эффекты из-за пузырения событий, см. http://stackoverflow.com/a/11146648/948073 – Lori

+1

В общем, вы, вероятно, должны использовать [sdk/selection] (https: // developer .mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/selection). Кроме того, я не уверен, что вы пытаетесь сделать здесь. – ZER0

ответ

2

Вы путаете код сценария контента и бэкенд/дополнения кода. Ваш файл main.js (backend/add-on) имеет доступ к модулям SDK, ваши скрипты содержимого имеют доступ к DOM (веб-страница/документ). Если вы хотите использовать DOM api (как вы делаете с getSelection и getElementById), вы должны сделать это со стороны сценария содержимого. См. this part of the guide, чтобы понять различие концептуально. Прочитайте these two tutorials для реализации.

Если вы хотите получить доступ к выбору из main.js и не нужны никакие других функций DOM, то вы должны сделать, как @ предложил ZER0 и использовать модуль sdk/selection

Смежные вопросы