问题标签 [data-uri]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
202 浏览

javascript - 数据:URI 与 window.onerror 不兼容

通过 生成内容时data:URI,我注意到页面window.onerror处理程序将 Javascript 错误报告为“脚本错误”。但是,Firefox 的错误控制台列出了确切的错误。

例如:

运行时,弹出窗口显示“脚本错误”,而 Firefox 的错误控制台显示“未终止的字符串文字”。

有没有办法通过报告确切的错误window.onerror

这是用于内部调试的,因此不需要跨浏览器兼容性。

谢谢!

0 投票
1 回答
2248 浏览

javascript - 将画布 dataURL 导出为 PDF - 如何?DataURL 太长,无法传递给服务器

我将画布表示为 base64 字符串。我想将此字符串传递给服务器,以便服务器可以使用数据制作 PDF 文档。

当我尝试将数据传递到服务器时收到 414 错误:“加载资源失败:服务器响应状态为 414(请求 URI 太长)。

我已经成功下载了图像客户端。我实际上检索和下载图像没有问题,只是在塑造它所代表的文件类型时。

将输出分成更小的块并将每个块发送到服务器,让服务器重建这些块,制作 pdf,然后将该文件流发送回客户端以触发下载,这是正确的解决方案吗?

供参考 - 数据 URL 约为 105k 个字符。

0 投票
1 回答
242 浏览

image - DATA URI 格式有没有重要的部分?

红点的数据 URI:

<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' height='32' width='32' alt='Image'>

如果有的话,这里的零件是什么?例如,前 20 个字符是为类型保留的,接下来的 2 个是为不透明度保留的,等等?如果有人能指出我正确的地方,我在 intergoogles 上找不到任何东西!

对 PNG 来说,字符串有相似之处: iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAh7sky7OeYKB8+tP6XGdtx//a/E2m63tavY/hRM=qW+lVt1OD8sxrieE5j7ebvK3eiz+1==eV=Crr4=

iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAAAAACPAi4CAAAAB3RJTUUH1QEHDxEhOnxCRgAAAAlwSFlzAAAK8AAACvABQqw0mAAAAXBJREFUeNrtV0FywzAIxJ3+K/pZyctKXqamji0htEik9qEHc3JkWC2LRPCS6Zh9HIy/AP4FwKf75iHEr6eU6Mt1WzIOFjFL7IFkYBx3zWBVkkeXAUCXwl1tvz2qdBLfJrzK7ixNUmVdTIAB8PMtxHgAsFNNkoExRKA+HocriOQAiC+1kShhACwSRGAEwPP96zYIoE8Pmph9qEWWKcCWRAfA/mkfJ0F6dSoA8KW3CRhn3ZHcW2is9VOsAgoqHblncAsyaCgcbqpUZQnWoGTcp/AnuwCoOUjhIvCvN59UBeoPZ/AYyLm3cWVAjxhpqREVaP0974iVwH51d4AVNaSC8TRNNYDQEFdlzDW9ob10YlvGQm0mQ+elSpcCCBtDgQD7cDFojdx7NIeHJkqi96cOGNkfZOroZsHtlPYoR7TOp3Vmfa5+49uoSSRyjfvc0A1kLx4KC6sNSeDieD1AWhrJLe0y+uy7b9GjP83l+m68AJ72AwSRPN5g7uwUAAAAAElFTkSuQmCC

前 20-30 个相似,但有细微差别: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAAAAACPA

但我无法确定任何格式/模式。使用=或者/我会看一下 RFC,但这仍然是开放的......

0 投票
2 回答
3297 浏览

firefox - 如何在 Firefox 中使用带有 @font-face 的数据 uri

我正在为公共 wifi 接入点设计一个启动页面,而 Firefox 拒绝显示我的自定义字体,而它在所有其他浏览器中都可以使用(嗯,不是 IE < 9,但这是意料之中的)。

该页面需要在以下约束中工作:

  • 无法访问互联网:在用户接受条款和条件之前显示此页面,因此所有内容都被阻止
  • 该页面存储在访问点上:这意味着嵌入式服务器可能是用 C 编写的,我不能真正添加​​额外的标题或其他东西。好吧,它是开源的,所以它可能是可能的,但我肯定不是嵌入式开发人员!
  • WiFi 用于宣传提供它的小镇,所以它应该尽可能漂亮。

为了满足这些约束,我使用了带有数据 uri 的 @font-face,如下所示:

它就像一个魅力......除了在 Firefox 中。现在我知道它不适用于旧版 IE,但我已经准备好使用它。但我觉得奇怪的是,所谓的现代浏览器不提供该功能。为什么这不起作用?

编辑:当然,我对后备有很多想法,但我的问题更多:为什么 Firefox 的这种行为与其他浏览器不同?是安全设置吗?data-uri 实现中的错误?数据uri的大小限制?

0 投票
2 回答
720 浏览

html5-canvas - 我可以在画布上绘制内联图像吗?

我有以下代码将图像呈现为画布的背景:

如果现在我想使用内联图像而不是外部文件作为背景怎么办?例如,

我怎样才能使它成为我的画布的背景?

编辑:我找到了一个教程(https://developer.mozilla.org/en/Canvas_tutorial/Using_images),其中提到了这一点,但没有提到如何使用它。

0 投票
1 回答
238 浏览

base64 - 要求数据 URI 进行 Base64 编码的基本原理是什么?

数据 URI允许将图像等外部资源直接内联到网页内部。考虑到数据 URI 可以更有效地以其他简单格式(例如 8 位 ASCII)编码,那么历史上或当前的设计理由是什么?

0 投票
8 回答
14011 浏览

javascript - 使用 Data URI 快速更新图像会导致缓存、内存泄漏

我有一个网页可以快速从服务器流式传输 JSON 并显示它的一部分,大约 10 次/秒。一部分是 base64 编码的 PNG 图像。我找到了几种不同的显示图像的方法,但所有这些方法都会导致无限的内存使用。它在几分钟内从 50mb 上升到 2gb。发生在 Chrome、Safari 和 Firefox 上。没试过IE。

我首先通过查看 Activity Monitor.app 发现了内存使用情况——Google Chrome 渲染器进程不断消耗内存。然后,我查看了 Chrome 的资源检查器 ( View> Developer> Developer Tools, Resources),我看到它正在缓存图像。每次我更改img src或创建一个新的 Image() 并设置它src时,Chrome 都会缓存它。我只能想象其他浏览器也在做同样的事情。

有没有办法控制这种缓存?我可以把它关掉,或者做一些偷偷摸摸的事情让它永远不会发生吗?

编辑:我希望能够在 Safari/Mobile Safari 中使用该技术。此外,如果有人有任何想法,我愿意接受其他快速刷新图像的方法。

以下是我尝试过的方法。每个都驻留在一个函数中,该函数在 AJAX 完成时被调用。

方法 1 - 直接在标签上设置src属性img

快速地。显示很好。像疯了一样泄漏。

方法 2 - 替换imgcanvas, 并使用drawImage

显示正常,但仍然泄漏。

方法 3 - 转换为二进制并替换canvas内容

我在这里做错了——图像显示很小,看起来像随机噪音。此方法使用受控的内存量(增长到 100mb 并停止),但速度很慢,尤其是在 Safari 中(那里的 CPU 使用率约为 50%,Chrome 中为 17%)。这个想法来自这个类似的 SO 问题:Data URI leak in Safari (was: Memory Leak with HTML5 canvas)

0 投票
1 回答
1429 浏览

image - 从 XMLHttpRequest 获取图像并显示它

我得到了这个网络服务,它给了我一个(jpeg)图像。我想要的是获取这张图片,将其转换为数据 URI 并将其显示在 HTML5 画布上,如下所示:

不幸的是,这段代码不起作用;图像根本没有画在画布上(加上它似乎有宽度和高度= 0,它可能没有正确解码吗?我没有例外)。img.src 看起来像data:image/jpeg;base64,77+977+977+977+9ABBKRklG....

已解决:原来我应该使用以下命令覆盖 mime 类型:

并设置响应类型:

(请参阅this。如果您也更改响应类型,则应该发出异步请求)。

0 投票
1 回答
5190 浏览

javascript - Firefox 中 CSV 文件的数据 URI 未放置 .csv 扩展名

我在我的 javascript 文件中定义了一个“下载文件”href:

在 chrome 中,它按预期工作,即当我点击这个下载链接时,它给出的文件名是“download.csv”。但是,在 Firefox 中,它会添加一些乱码,例如“puzdb.part”。

有人可以指出我做错了什么吗?

谢谢

编辑:这是 jsfiddle 演示:http: //jsfiddle.net/kLJz9/

编辑#2:我注意到在Windows上它也没有为chrome添加.csv扩展名,firefox的行为仍然相同(即.part扩展名)

0 投票
1 回答
2446 浏览

javascript - 将远程图像转换为 dataURL,客户端

可能重复:
在 Javascript 中获取图像数据?
在javascript中将图像转换为二进制数据

我有:

包含指向远程服务器上图像的链接的字符串。

我想:

要“获取”此图像,纯粹通过客户端 Javascript,并将其转换为 base64 dataURL 表示。

这可能吗? 如何?