我的朋友要求我为Chrome创建一个应用程序,它要求我具有上下文相关的菜单,如下所示:
以前,我从未真正为Chrome做过任何事情,对此有一些疑问:
我将必须开发一个plug-in
,对吗?
如果是这样,我必须遵循一组特定的规则吗?
我知道我可以使用GWT将Java编译为JavaScript
3.此上下文相关菜单与JPopupMenu
相同吗?
我要开发的应用程序很简单:
复制一些文字,
右键单击,单击上下文相关菜单
将简单的凯撒密码应用于文本
用其中的JFrame
打开一个新的JtextArea
以显示加密的文本。
最佳答案
您创建的内容称为“ extension”,而不是“插件”。浏览器扩展是使用HTML,CSS和Javascript编写的,并且可以访问API以与浏览器直接交互。
另一方面,Plug-ins是已编译的二进制文件,例如Flash和Java。
放弃将GWT用于Chrome扩展程序的想法。它使扩展的开发变得更困难而不是更容易(open issue)。
尤其是因为您会在the documentation和Stack Overflow中找到大量原始的JavaScript示例和教程。
您只需要了解相关的API:
复制一些文字,
右键单击,单击上下文相关菜单
使用chrome.contextMenus
。无需复制,选定的文本在回调(examples)中可用。
将简单的凯撒密码应用于文本
创建一个JavaScript函数以实现此目的。
用JtextArea打开一个新的JFrame以显示加密的文本。
使用chrome.windows.create
创建一个新窗口。您可以在扩展程序中包括一个额外的HTML页面,并使用message passing APIs填充文本字段,但是由于您似乎是一个完整的新手,因此我展示了一个简单的复制粘贴方法来创建和填充此窗口:
function displayText(title, text) {
var escapeHTML = function(s) { return (s+'').replace(/</g, '<'); };
var style = '*{width:100%;height:100%;box-sizing:border-box}';
style += 'html,body{margin:0;padding:0;}';
style += 'textarea{display:block;}';
var html = '<!DOCTYPE html>';
html += '<html><head><title>';
html += escapeHTML(title);
html += '</title>';
html += '<style>' + style + '</style>';
html += '</head><body><textarea>';
html += escapeHTML(text);
html += '</body></html>'
var url = 'data:text/html,' + encodeURIComponent(html);
chrome.windows.create({
url: url,
focused: true
});
}
不要忘记阅读Getting started,以了解有关扩展基础架构的更多信息。