0

ユーザーが Firefox アドオンで CTRL + SPACE を押したときに、フォーカスされた要素を取得しようとしています。

そのために、 document.activeElementを使用してフォーカスされた要素を取得しようと考えましたが、機能していません。常に XULElement を返します。

このアドオンには 2 つのファイルしかありません。

ライブラリ/main.js

var self = require ("sdk/self");

var workers = require("sdk/content/worker");
let worker =  workers.Worker({
                window: require("sdk/window/utils").getMostRecentBrowserWindow(),
                contentScriptFile: self.data.url("script.js")
              });


var { Hotkey } = require("sdk/hotkeys");
var showHotKey = Hotkey({
  combo: "control-space",
  onPress: function() {
        worker.port.emit ("getFocused", "");
  }
});

およびファイル Data/script.js

self.port.on ('getFocused', function (msg){
    var campo = document.activeElement;
    alert (campo);
});

(ここで確認できる方法:アドオン SDK ビルダー テスト プロジェクト)

それで、誰かがそれを手伝ってくれますか?

XULElement から入力テキストまたはテキストエリアを取得し、そのテキストを変更することは可能ですか?

どうもありがとうございました!

- - - - - - - - - - - - 編集 - - - - - - - - - - -

役立つかどうかはわかりませんが、URL テキスト領域 (サイトのアドレスを書き込む場所) にフォーカスがあると、

[オブジェクト HTMLInputElement]

4

1 に答える 1

2

getMostRecentBrowserWindowChromeWindow オブジェクトを返します。したがって、activeElement` が XUL 要素であることは正常です。

あなたがすべきことは

window: require("sdk/window/utils").getMostRecentBrowserWindow().gBrowser.contentWindow
于 2013-10-24T11:39:02.747 に答える