我的朋友要求我为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, '&lt;'); };
    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,以了解有关扩展基础架构的更多信息。

07-24 18:56
查看更多