2013-10-12 17 views
1

我正在開發Firefox插件,我想知道如何使用Mozila Addon SDK獲取工具欄中搜索框的內容?我終於找到了它所在的chrome URL(至少我認爲:chrome:// browser/content/search/...),但我仍然有點不確定如何引用它來獲取搜索框插入我的插件。我嘗試過:document.getAnonymousElementByAttribute(this, "anonid", "searchbar-textbox");,但這給出了「文檔未定義」的錯誤,可能是因爲Firefox不知道'searchbar-textbox'是什麼,這超出了插件的範圍(在不同的'文檔'中)。我對插件開發相對來說比較陌生,所以可能有一個相當簡單的方法來做到這一點,這只是我未知的解決方案。謝謝。使用Mozilla Firefox插件SDK獲取工具欄搜索框的內容

回答

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); 
    } 
}); 
+0

感謝,這正是我一直在尋找! – SomeoneElse

相關問題