2016-05-13 37 views
2

我試圖找出如何插入右側單擊輸入字段(編輯)預定義的字符串,通常我會用該文件由ID獲取元素。但是,由於我無法確定用戶點擊哪個元素,因此在任何網站上,我該如何去做這件事?瀏覽器插件 - 文本菜單插入文本

到目前爲止,我有我的清單文件

"permissions": [ 
    "contextMenus", 
    "background", 
    "https://ajax.googleapis.com/" 
], 

"background": { 
    "scripts": ["scrippy.js"] 
} 
} 

(我有所需信息的其餘部分爲好。)

我的腳本文件

// Create context menu and set to only on inputs 
var type = ["editable"]; 
var scrippyMenu = chrome.contextMenus.create({"title": "Scrippy", 
"contexts": type}); 


// menu context 
var menuContext = chrome.contextMenus.create({"title": "blabla", 
"parentId": scrippyMenu, "contexts": type}); 

var menuChild1 = chrome.contextMenus.create(
{"title": "time", "parentId": menuContext, "contexts": type, "onclick": 
genericOnClick}); 

function genericOnClick(info, tab) { 

document.getElementById("Theunknownelement").textContent = 'This is added text'; 

} 

回答

1

你有一個根本誤區一:你的背景腳本不能修改網頁,因爲document背景頁面本身

看一看的Architecture overview。做完之後,你應該知道你需要一個Content Script

一旦我們已經確定,您的內容腳本可以獨立track where the click happened - 這將包含對元素的引用。然後,當你的背景要求修改時,你知道最後一個這樣的元素。

有一個很好的問題discussing your problem in great detail了。

+0

您好,感謝鏈接和信息。然而,我從另一個答案看了你的例子,我似乎仍然無法讓它工作。我已經更新了我的問題,你可以採取行動嗎?我不是一個開發人員,只要我在google上找到並在路上學習,所以任何幫助都會很棒! – Lmnoppy

+0

請看你的問題。然後到我的答案。我的答案是否仍然回答你的問題?不可以。在給出答案後,請不要做重大問題重寫 - 分別詢問後續問題。 – Xan

+0

好吧,我明白你的觀點,所以我應該創建一個新的問題?我不經常使用這個網站。 – Lmnoppy