1

我仍在使用我的第一個Chrome擴展,並且遇到了問題。我正在嘗試使用document.activeElement.value將一些文本插入文本字段。從擴展中訪問document.activeElement.value

我無法讓它工作。我已經使用了很多人的例子,並沒有得到它的工作。

這是我的background.js中的代碼,該擴展用於創建上下文菜單並插入文本。我假設在這一點上我的onClickHandler或點擊事件有問題,但我很茫然。

chrome.runtime.onInstalled.addListener(function() { 
    var context = "all"; 
    var title = "Test"; 
    var id = chrome.contextMenus.create({"title": title, "contexts":[context], 
             "id": "context" + context}); 
}); 

// add click event 
chrome.contextMenus.onClicked.addListener(onClickHandler); 

//The onClicked callback function. 
function onClickHandler() { 
    document.activeElement.value = 'some text'; 
} 

回答

0

好的,你需要一些背景。

首先,你在後臺頁面執行代碼;因此,document是指背景頁面本身

花點時間閱讀Architecture Overview(如果您剛開始的話,也可能是頁面的其餘部分,這非常有幫助)。

如果您閱讀該內容,則應該瞭解您需要內容腳本。一旦injected在活動選項卡中(並且the "activeTab" permission應該足以通過點擊處理程序完成),則可以訪問正確的document

但是,這個任務比您想象的要複雜。最近有關該主題的討論;詳情請參閱this question