标题是不言自明的,但我会在这里深入解释。我有一个Firefox扩展程序用于我的图像托管站点(目前已关闭)。
目前有两个功能:
扩展程序仍然需要的是一个功能(或两个),允许用户上传浏览器上当前可见的内容或完全捕获浏览器(包括滚动条下的内容)。
我尝试从其他扩展中复制各种代码并将它们与我自己的代码组合在一起。它们包括canvas
等我不太懂的东西。我能够以某种方式获得 base64 图像字符串(我不完全记得如何)。使用该字符串,我认为实现目标的最佳方法是通过XMLHttpRequest
将其发送到我的图像主机,并在我的主机中创建图像。 ResponseText
将是图像的链接。
正如你所看到的,我在这里做得太多了 - 显然我不需要在我的服务器端为这个问题做额外的处理。我认为有一些方法可以处理来自扩展的所有内容,而无需在服务器端进行额外编码(如果我错了,请纠正我)。
这是附加组件:https://addons.mozilla.org/en-US/firefox/addon/imgit/
正如您可以看到扩展程序添加的两个上下文菜单,我需要第三个上下文菜单,右侧有一个箭头,打开另一个菜单,其中包含我需要的两个新选项:
第一个选项应该捕获并上传浏览器中可见的内容,不包括滚动条下的内容。第二个选项应捕获所有内容并将其上传到我的网站,包括滚动条下的内容。
添加上下文菜单并不是什么大问题,但让它们按照我想要的方式运行是我遇到的问题。我不知道如何开始,我在网络上的研究无法让我更进一步。通过Javascript以某种方式创建图像(使用canvas
,我不知道如何)并将base64编码的字符串发送到我的网站实际上可以工作,但是拍摄快照并使其成为base64编码是问题所在。我也不确定Firefox扩展是否真的允许我使用Ajax来发送/接收数据。
我需要一个合乎逻辑的方法解决这个问题。如果你有一个想法,请回答并显示代码片段将非常感激。我不是一个Javascript专家,但有一些关于如何开始的信息,我可以让自己摆脱这个烂摊子。
达到我想要的最佳方式是什么?