我一直在研究一個小的Chrome擴展,帶來一個問題,我似乎無法得到我的頭,並希望有人以全新的視角看待它。文本選擇和顯示在上下文菜單中鍍鉻擴展
目標是創建一個Chrome擴展,使您可以選擇任何給定網站上的文本,並顯示一個選項,使用上下文菜單項將選擇發送到另一個網站。
我manifest.json的看起來是這樣的:
{
"name": "Context Menu Search",
"description": "Opens the selected text as keyword in a new window",
"version": "0.1",
"permissions": ["contextMenus"],
"background_page": "background.html"
}
然後background.html:
<script src="rightclick.js"></script>
而且rightclick.js:
var selection_callbacks = [];
function getSelection(callback) {
selection_callbacks.push(callback);
chrome.tabs.executeScript(null, { file:"selection.js" });
};
chrome.extension.onRequest.addListener(function (request) {
var callback = selection_callbacks.shift();
callback(request);
});
function sendSearch(selectedText) {
var serviceCall = 'http://www.google.com/search?q=' + selectedText;
chrome.tabs.create({url: serviceCall});
}
var tx = getSelection();
var title = "Test '" + tx + "' menu item";
var id = chrome.contextMenus.create({"title": title, "contexts":[selection],
"onclick": sendSearch(tx)});
console.log("selection item:" + id);
個
加selection.js:
chrome.extension.sendResponse(window.getSelection().toString());
到目前爲止上下文菜單創建工作正常,但在所有不顯示選定的文本。 如果有人對如何解決這個問題以及簡化腳本有任何建議,我將不勝感激您的意見。
非常感謝。
非常感謝您的詳細回答SERG,你在你的答案的代碼部分離開%出去了,但我得到了你的建議工作! – baik 2010-12-07 19:54:18