【发布时间】:2017-09-15 09:44:36
【问题描述】:
当 imgGraph 的 src 加载了生成的 dataURI 时,我无法让 onLoad 处理程序触发。 dataURI 是使用画布从 d3.js 可视化 (svg) 生成的。
var canvas = document.getElementById(visual + '-canvas');
if(visual == "graph"){
console.log('graph logic n stuff')
canvas.width = 558;
canvas.height = 558;
var graph = d3.select('#graph-svg').node();
var svg_xml = (new XMLSerializer()).serializeToString(graph);
var imgGraph = new Image();
var context = canvas.getContext('2d');
var imageData;
imgGraph.onload = function(){
console.log('img loaded')
context.drawImage(imgGraph, 0, 0);
imageData = getImgData(canvas);
console.log(imageData)
def.resolve(imageData)
}
console.log('setting src')
imgGraph.src = "data:image/svg+xml;base64,"+btoa(svg_xml);
}
正在设置 img src,但从未触发 img.onload。 但是,当登录和浏览 datauri 时,图像正在显示。 其他图像似乎正确触发了 onload 事件。
【问题讨论】:
-
试试
onerror- 因为有错误 -
错误在于
Olivier Frère中的è -
和
Adrien Ampélas中的阿德里安é -
@JaromandaX 我已经尝试过 onerror,确实会触发,但它没有提供有关问题所在的任何信息。
-
好吧...尝试将数据 uri 放入您的 pastebin 到地址栏中 - Firefox 会告诉您它不喜欢它的哪些地方
标签: javascript jquery d3.js svg html5-canvas