在cfm问题中显示.svg图像

时间:2010-09-02 17:52:51

标签: html image browser coldfusion svg

我想将一个svg文件放入我的cfm页面。 Safari可以正确渲染,但是,其他浏览器:在Chrome和Opera中它只会显示为xml源;在IE中它只是留空;在FF中它显示为一个插件图标,如果我点击它,它将搜索插件,最终会告诉我没有插件可用。我在我的机器(客户端机器)上安装了Adobe SVG视图。我在cfm中嵌入了svg文件:

<embed src="#myimagelocation#" type="image/svg+xml" width="32" height="32"></embed>

其中#myimagelocation#包含的值如下:http://example.com/a.svg

任何人都知道如何解决这个问题?非常感谢你。

4 个答案:

答案 0 :(得分:4)

<object data="image-svg.svg" type="image/svg+xml" height="48" width="48">
    <img src="image-png.png" height="48" width="48" alt="this is a PNG" />
</object>

object标签(image-png.png)的内部内容是SVG图像的替代表示。可以想象它与图像上的alt-text类似 - 它仅用于不支持SVG的地方。

来自How to Include Scalable Vector Graphics (SVG) In-line

答案 1 :(得分:0)

这听起来更像是服务器问题,而不是ColdFusion。如果用硬编码文本替换CFM,您是否在非Safari浏览器中看到完全相同的问题?

答案 2 :(得分:0)

如果它在Safari中呈现,您就知道HTML正在按预期呈现。但是,“按预期”和“正确”可能不是一回事。无论如何,Jedi本身是正确的(假设您没有使用CF生成SVG),那么ColdFusion不是您问题的一部分。

自从V.8以来,Opera应该支持开箱即用的SVG,所以这就是我专注于测试的地方。除了嵌入标记之外,我还会尝试使用对象标记,Flash嵌入需要它(是?)。

IE没有本机支持,FF的支持是部分支持。我会测试这些,看看Opera工作后会发生什么。

答案 3 :(得分:0)

验证是否发送了正确的svg mimetype,'type'属性是不够的。还要确保svg根元素声明了svg名称空间,例如xmlns="http://www.w3.org/2000/svg"