在浏览器已加载的图像的Javascript中获取唯一标识符

时间:2011-09-20 20:27:33

标签: javascript jquery canvas hash image

我有一些显示图书信息的页面,他们使用外部封面服务器来获取封面,并将相应的网址放在src的{​​{1}}属性中元件。

封面服务器没有所有封面,因此通常它会返回一个默认的空白封面。

我需要一种方法来了解,javascript-side和一旦页面加载,如果封面服务器返回的封面是默认的空白图像,以便用自定义html代码替换该默认空白图像。所以我试图为封面图像计算一个唯一的识别器。

我想使用canvas'img方法然后获取drawImage的哈希值,但后者返回一个安全例外,因为图像来自外部服务器。

你有更好的(和工作)想法来实现我的目标吗?

3 个答案:

答案 0 :(得分:3)

无法在客户端完成。如果来自一个域的脚本可以查看来自另一个域的图像的内容,那么这将是一个安全漏洞(跨站点脚本)。

您必须在第三方服务器上使用单独的服务,或者通过在服务器端获取图像并将其与填充图像进行比较来查找信息。 (建议先使用HEAD请求检查长度,看看是否与填充图像的已知长度相匹配,以获得速度。)

答案 1 :(得分:0)

也许你可以为封面图片做一个XmlHttpRequest,比如HEAD请求,然后查看ETag标头值(或Content-MD5或其他东西)。

答案 2 :(得分:0)

空图像的宽度和高度是否与普通图像不同?如果是这样,请将其作为指南。