之所以这么绕有几个原因:
1. extension 似乎没有标准的 API 可以实现「打开一个页面,自动上传文件,提交表单」的操作,所以只能在某个网页中用 js 操作 DOM 模拟这个动作
2. 也没有任何标准 API 能实现直接获取 img 的(原始)二进制内容,或者得到 file 对象,用 canvas 可以得到图像数据,但是会有跨域问题,所以选择打开图像 url 对应的页面,注入 content script ,避免了跨域
3. 其实提交 url 给 saucenao 完全没问题,大部分情况下 url 都是可用的(比 google images 好),因此这个 extension 的意义主要就在于能实现来自 file url 的图片的自动上传
1. extension 似乎没有标准的 API 可以实现「打开一个页面,自动上传文件,提交表单」的操作,所以只能在某个网页中用 js 操作 DOM 模拟这个动作
2. 也没有任何标准 API 能实现直接获取 img 的(原始)二进制内容,或者得到 file 对象,用 canvas 可以得到图像数据,但是会有跨域问题,所以选择打开图像 url 对应的页面,注入 content script ,避免了跨域
3. 其实提交 url 给 saucenao 完全没问题,大部分情况下 url 都是可用的(比 google images 好),因此这个 extension 的意义主要就在于能实现来自 file url 的图片的自动上传