我一直在研究一个小的Chrome扩展程序,但我似乎无法解决这个问题,并希望有人能够以全新的视角审视它.
目标是创建一个chrome扩展,使您可以在任何给定的网站上选择文本,并显示一个选项,使用contextmenu项目将选择发送到另一个网站.
我的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"
}
Run Code Online (Sandbox Code Playgroud)
然后是background.html:
<script src="rightclick.js"></script>
Run Code Online (Sandbox Code Playgroud)
和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 '" + …Run Code Online (Sandbox Code Playgroud) 我在HTML和JavaScript方面经验丰富,但从未制作过(真正的)Chrome扩展程序(除了"Hello World"教程).
我想要做的是做一个扩展,增加查看图像的功能.基本上,当你转到.jpg,.png等时,我想要加载一些JavaScript.页.
我无法从"Hello World"教程或Docs中获得太多信息,而且我查看了XML Tree中的代码,但我无法理解它.
我不知道从哪里开始.
我希望我的扩展程序在选择(突出显示)然后拖动某个文本时收听该事件。就像通过将 url 拖动到选项卡框来打开新选项卡一样。我已经看到这个答案this answer但是它在单击图标时突出显示文本,但我希望我的一些函数 foo() 在选择和拖动文本时自动触发。任何人都可以帮助我吗?
我想在按快捷方式时返回所选的文本。
这是我的代码:
chrome.commands.onCommand.addListener(function(command) {
console.log(window.getSelection().toString());
});
Run Code Online (Sandbox Code Playgroud)
即使我当前选择了文本,它也不会返回任何内容。如果我删除toString,则输出如下:
anchorNode: null
anchorOffset: 0
baseNode: null
baseOffset: 0
extentNode: null
extentOffset: 0
focusNode: null
focusOffset: 0
isCollapsed: true
rangeCount: 0
type: "None"
Run Code Online (Sandbox Code Playgroud)
关于如何实际返回选择的任何想法?