2010-09-02 185 views
1

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

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

#myimagelocation#将包含类似值:http://example.com/a.svg

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

回答

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标签(图像png.png)的内内容是SVG图像的替代表示。可以将它想象成类似于图像上的替代文本 - 它仅用于不支持SVG的地方。

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

0

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

0

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

Opera自从V.8开始就应该支持SVG,所以这就是我关注测试的地方。除了嵌入标签之外,我会尝试使用object标签,因为Flash嵌入需要(是?)。

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

0

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