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