首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我能以blob的形式获得跨站点<img/>标记的数据吗?

我能以blob的形式获得跨站点<img/>标记的数据吗?
EN

Stack Overflow用户
提问于 2012-03-07 18:44:53
回答 1查看 3.2K关注 0票数 5

我试图保存几张图片,这些图片是通过网页链接到离线存储的。我在火狐上使用IndexedDB,在Chrome上使用FileSystem API。我的代码实际上是一个扩展,所以在Firefox上,我运行在Greasemonkey上,在Chrome上作为内容脚本运行。我希望这是自动化的。

当检索图像文件时,我遇到了问题。我正在使用题为在IndexedDB中存储图像和文件的文章中的示例代码,但我得到了一个错误:我试图下载的图像位于不同的子域中,XHR失败。

代码语言:javascript
运行
AI代码解释
复制
XMLHttpRequest cannot load http://...uxgk.JPG. Origin http://subdomain.domain.com is not allowed by Access-Control-Allow-Origin.

在火狐上,我可能会使用GM_xmlhttpRequest,它可以工作(当我使用相同的原点URL时,代码在两个浏览器上都能工作),但我仍然需要解决Chrome的问题,在这个问题中,其他约束(即需要与主页上的框架交互)要求我在页面中合并我的脚本,并丧失我的特权。

因此,回到我正在试图找到一种方法来保存链接到IndexedDB和/或FileSystem API的页面(并且可能出现在)的图像。我要么需要意识到如何解决Chrome中的跨源问题(如果它需要特权,那么我需要修复与jQuery交互的方式)或某种反向createObjectURL。最后,我需要一个blob (据我所知,File对象)放入IndexedDB (火狐)或写入FileSystem API (Chrome)。

有人帮忙吗?

编辑:我的问题可能真的归结于我如何在不失去Chrome上的内容脚本特权的情况下以我想要的方式使用jQuery。如果是的话,我可以在Chrome上使用异源XHR。也是。虽然我更愿意得到一个不依赖于此的解决方案。特别是,如果我将脚本合并到网页中,并且不要求它是一个内容脚本/用户脚本,我想要这个解决方案。

编辑:我意识到这个问题只是关于跨站点的请求。现在,我有三种方法获得图像blob,在@chris、这些 问题和其他一些页面(如)的帮助下,可以在这把小提琴中看到。但是,所有这些都需要特殊特权才能运行。唉,因为我在一个有框架的页面上运行,因为有了铬中已知的缺陷,我无法访问这些帧。因此,我可以使用all_frames: true将脚本加载到每个帧中,但我确实希望避免在每次加载框架时加载脚本。否则,根据这篇文章,我需要摆脱沙箱,但它会返回到特权。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-07 18:53:07

因为你在Chrome和Firefox上运行,所以幸运的是,你的回答是肯定的(有点)。

代码语言:javascript
运行
AI代码解释
复制
function base64img(i){
    var canvas = document.createElement('canvas');
    canvas.width = i.width;
    canvas.height = i.height;
    var context = canvas.getContext("2d");
    context.drawImage(i, 0, 0);
    var blob = canvas.toDataURL("image/png");
    return blob.replace(/^data:image\/(png|jpg);base64,/, "");
}

这将返回base64编码的映像。

从这里开始,您只需将函数称为类似于以下内容的函数:

代码语言:javascript
运行
AI代码解释
复制
image = document.getElementById('foo')
imgBlob = base64img(image);

然后继续存储imgBlob

编辑:由于文件大小是个问题,您也可以将数据存储为canvasPixelArray,其宽度*高度*大小为4字节。

代码语言:javascript
运行
AI代码解释
复制
imageArray = context.getImageData( 0, 0 ,context.canvas.width,canvasContext.canvas.height );

然后JSONify数组并保存它?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9612229

复制
相关文章
取消 SSH 私钥密码
前言 生成 SSH 秘钥时,会让你输入私钥的密码,直接回车则意为不设密码,如果设置了私钥密码,每次使用 SSH 进行操作都需要输入私钥密码。虽然这样增加了安全性,但是使用 SSH 的目的很多时候就是想更加方便,跳过输入账号密码这一步。只要保存好自己的私钥不泄露,一般不设私钥密码是没有太大的风险的。如果已经生成带密码的私钥,又想取消密码可以按下列两种方法操作。 取消 SSH 私钥密码 方法一 使用 ssh-keygen 命令更改 SSH Key 密码,进入秘钥所在到的文件夹内(一般为~/.ssh),执行下列
木制robot
2018/04/13
9.9K0
ssh公私钥登录方式设置
①环境说明:两台Linux主机,host1:192.168.5.1,host2:192.168.5.10。
全栈程序员站长
2022/07/08
8980
ssh公私钥登录方式设置
从Windows 10 SSH-Agent中提取SSH私钥
在这个周末我安装了Windows 10 Spring Update,最令我期待的就是它的内置OpenSSH工具,这意味着Windows管理员不再需要使用Putty和PPK格式的密钥了。随后,我花了些时间来探索并了解该版本所支持的特性。最终没有令我失望,我惊喜地看到ssh-agent.exe也被包含在内。在MSDN的一篇关于使用新Windows ssh-agent文章的以下部分,引起了我的注意:
FB客服
2018/07/30
2.7K0
从Windows 10 SSH-Agent中提取SSH私钥
linux ssh指定私钥登陆linux主机
ssh指定私钥登陆linux主机 服务端 ssh-keygen -t rsa -b 4096 一路回车 cat .ssh/id_rsa.pub >> .ssh/authorized_keys 将公钥追加到authorized_keys 客户端 下载私钥,指定私钥登陆 scp root@192.168.*.*:/root/.ssh/id_rsa ./192.168.*.*.rsa localhost:~ wangzi$ mv 23.pem 192.168.*.*.rsa localhost:~ wangz
葫芦
2021/01/18
5.7K0
ansible(3)——主机列表,ssh,公钥私钥
这里报错是因为我们没有将这两台主机的记录加入到/root/.ssh/known_hosts中:
gzq大数据
2020/11/11
1.7K0
ansible(3)——主机列表,ssh,公钥私钥
公钥私钥
上面几篇文章我们讲到了对称加密,包括它的几种实现AES,DES算法。那么有了对称加密算法,我们是否就可以安全的和第三方进行通信了呢?考虑如下情况:
程序那些事
2020/07/08
1.8K0
公钥私钥
钱包地址 私钥_eth私钥就是收款地址吗
钱包地址是我们最常见的,它们是一串数字和字母的组合,看起来有点像乱码。钱包地址就像银行卡号,代表了你的比特币账户。通过交易所、比特币客户端和在线钱包都可以获得钱包地址。
全栈程序员站长
2022/09/16
1.7K0
当SSH免密登录的私钥被移动之后... ...
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢。
耕耘实录
2018/12/20
7470
[Golang软件推荐] RSA公私钥加解密(解决Golang私钥加密公钥解密问题)
安全是软件开始中很重要的一个环节,在金融场景以及设计资产的场景下更是如此,在加密算法中主要使用较多加密方式分别是对称加密和非对称加密,对称加密中的代表是AES,DES,3DES等,非对称加密中使用比较多的是RSA,ECC等,最近火热的比特币中就使用ECC椭圆曲线算法,本篇文章主要是笔者在使用Golang在使用RSA中使用私钥加密公钥解密中遇到的问题,以及寻找的解决方案进行阐述,希望可以帮助到大家! 附上: 喵了个咪的博客:w-blog.cn gorsa-Github地址:https://github.c
喵了个咪233
2018/03/02
4.4K0
[Golang软件推荐] RSA公私钥加解密(解决Golang私钥加密公钥解密问题)
公钥与私钥
鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。
cxuan
2022/04/02
1.6K0
公钥与私钥
图解公钥与私钥
在学习ssh时,一定有不少人对公钥和私钥产生过不解。在搜索公钥跟私钥的理解时,发现了这篇有趣的图解小文章,与大家共享。
TimothyJia
2019/11/12
1.8K0
图解公钥与私钥
生成多个 SSH-Key 、生成多个公钥和私钥
会有提示,让输入存放 Key 的文件名,我输入了 test.rsa。(文件存在的话,可选择覆盖。不存在会自动创建。)
微风-- 轻许--
2019/12/20
2.9K0
生成多个 SSH-Key 、生成多个公钥和私钥
RSA的公钥私钥
非对称加密使用的是RSA算法,所谓的非对称,指的是,加密时使用的秘钥和解密时使用的秘钥是不一样的。也就是说RSA有一对秘钥,其中一个是公钥,另一个是私钥,一个用于加密,一个用于解密。
赵哥窟
2022/04/02
2.5K0
RSA的公钥私钥
科普|以太坊私钥存储文件
以太坊的私钥文件存储于数据目录(datadir指向或默认目录)下,对应的目录为keystore。所有的私钥文件都经过加密之后存储于此目录下。
程序新视界
2022/05/06
1.3K0
科普|以太坊私钥存储文件
Ruby OpenSSL 私钥伪造脚本
前段时间的openssl heartbleed 让我们心惊胆战的过了几天。 从用户数据泄露到 OpenSSL周边产品,从服务端到客户端, 从https 私钥泄露到 openvpn 、openssh 、sftp 等私钥泄露。很多地方我们无能为力。 太多的用户都认为https 就是安全的了, 在此之前也有各种各样的中间人攻击出现 下面我也贴段代码给大家看看。是 Ruby OpenSSL 的私钥伪造。 为了社会的和谐,具体用法我就不说了。能看懂的直接拿去用… require 'rubygems' requir
FB客服
2018/02/02
7860
加密,防止网站证书私钥泄露
黑客就可以构建假冒的钓鱼网站,借助DNS劫持,将用户引导到假网站上面去,可窃取用户的口令等敏感信息;或者黑客执行中间人攻击。
用户U2
2022/06/02
1.1K0
加密,防止网站证书私钥泄露
公钥私钥的那点事儿
生成秘钥参考官网:https://docs.open.alipay.com/291/105971
IT茂茂
2020/03/05
3.7K1
公钥私钥的那点事儿
pfx证书获取私钥「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145038.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/27
1K0
php中的公钥和私钥
最近公司业务需要用到公钥和私钥,之前接触的很少,不是很了解,刚刚上网了解了下.发现很多地方都要用到加密.有对称加密算法( DES,AES)[加密和解密都使用一个密钥]和不对称加密算法(RSA).这里说的是RSA(非对称加密算法). RSA就涉及到公钥和私钥.
仇诺伊
2018/09/12
1.5K0
php中的公钥和私钥
点击加载更多

相似问题

Foreach循环在php中不能正常工作

128

foreach循环数组承诺不返回

212

如何使函数在JavaScript中返回承诺?

39

在foreach循环结束时返回承诺

11

Foreach循环不能正常工作

42
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文