【发布时间】:2015-06-29 21:10:22
【问题描述】:
我使用 SVG 图像作为 HTML5 画布元素的背景图案,使用以下语法:
var img = new Image();
img.onload = function() {
var pattern = badge.createPattern(img, 'repeat');
badge.fillStyle = pattern;
// draw 'badge' shape
badge.fill();
};
img.src = '../flags/iso/'+country+'.svg';
这在 Firefox 和 Chrome 中按预期工作,但在 Safari (7.0.3) 中,背景为空白(白色)。在 Safari 等中使用 png 或 jpg 作为背景图像可以正常工作 - 只有 SVG 渲染不正确。
感谢您的指点。还有许多其他关于 Safari SVG 错误的报告,但我不确定这是特定于那个,还是与 Canvas 实现有关。
更新:这是a previously reported bug in Safari,但似乎没有采取任何行动。问题是使用 SVG 创建模式。
如果 Safari 无法使用 createPattern 加载 SVG,是否有其他替代方法可以将图像加载到画布中的不规则形状(多边形)中,作为背景图像?
【问题讨论】:
-
您可以在这里报告 safari 错误:bugs.webkit.org/enter_bug.cgi?product=WebKit&component=SVG
-
@robert-longson - 谢谢,发现它在 2010 年被报告,但没有采取任何行动:bugs.webkit.org/show_bug.cgi?id=45277
标签: javascript html canvas svg safari