使用Mozilla Firefox Add-on SDK获取工具栏搜索框的内容

时间:2013-10-12 15:51:26

标签: javascript firefox dom firefox-addon xul

我正在开发一个Firefox插件,我想知道如何使用Mozila Addon SDK获取工具栏中搜索框的内容?我终于找到了它所在的chrome URL(至少我认为:chrome:// browser / content / search / ...),但我仍然不确定如何引用它来获取内容搜索框进入我的插件。我试过:document.getAnonymousElementByAttribute(this, "anonid", "searchbar-textbox");但这会给出“文档未定义”错误,可能是因为Firefox不知道'searchbar-textbox'是什么,这超出了插件的范围(在不同的'文档'中) 。我对插件开发相对较新,所以可能有一种相当直接的方法来做到这一点,只是我不知道这个解决方案。感谢。

1 个答案:

答案 0 :(得分:2)

您的“主”模块(和其他lib /模块)没有附加任何文档。您需要首先使用一些低级API(例如window/utils .getMostRecentBrowserWindow()函数来获取活动浏览器窗口的DOMWindow。之后,它只是获取#searchbar元素并检查.value属性(通过XBL公开)。

完整示例:

const {getMostRecentBrowserWindow} = require("window/utils");

require("sdk/widget").Widget({
  id: "log-search-field",
  label: "Log Search Field",
  contentURL: "http://www.mozilla.org/favicon.ico",
  onClick: function() {
    let win = getMostRecentBrowserWindow();
    console.error("Search text: " + win.document.getElementById("searchbar").value);
  }
});