繁体   English   中英

document.activeElement返回一个XULElement

[英]document.activeElement returning a XULElement

当用户在我的Firefox插件上按CTRL + SPACE时,我正在尝试获取焦点元素。

为此,我想使用document.activeElement来获取焦点元素,但它无法正常工作。 它总是返回一个XULElement。

我在这个附加组件中只有两个文件:

LIB / 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 Builder测试项目

那么,有人可以帮助我吗?

可以从XULElement获取输入文本或textarea并更改其文本吗?

非常感谢你!

------------------------编辑----------------------

我不知道它是否有帮助,但是,当url文本区域(我们编写站点的地址)具有焦点时,它返回一个

[object HTMLInputElement]

getMostRecentBrowserWindow返回一个ChromeWindow对象。 所以activeElement`是一个XUL元素是正常的。

你应该做的是

window: require("sdk/window/utils").getMostRecentBrowserWindow().gBrowser.contentWindow

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM