【发布时间】:2015-03-31 15:18:41
【问题描述】:
我有一个 svg 文件,其中包含一系列 path 元素。现在我想对它们进行操作,例如更改其笔触颜色或宽度。
查看其他帖子中的一些解决方案后,这就是我正在做的事情
// Here is my object tag
// <object data="/sample.svg" id="mysvg" width="675" height="675"></object>
var svg = document.getElementById('mysvg');
var svgDoc = svg.contentDocument;
//alert(svgDoc);
var graphics = svgDoc.getElementById('layer_GRAPHICS');
$(graphics).find('path').css('stroke', '#00F');
它在 Chrome、FF、IE 9+ 上完美运行。但我也需要让它在 IE8 上工作。 IE 8 显示我的 svg 文件正常,但不是我预期的结果。
我要指出的一点是,在 'alert line above' 处,其他浏览器返回 SVGDocument 类型的对象,而不是带有 HTMLDocument 的 IE8 >.
你有什么想法可以让它在 IE8 上运行吗?
P/S:其他帖子建议我应该将上述代码放入 svg 文件的 load 事件中,但我的情况并非如此。我上面的代码将在按钮的单击事件中运行。在尝试运行该代码之前,我等待所有内容都加载完毕。
谢谢
【问题讨论】:
-
IE8 不支持 SVG 那么您如何让 IE8 显示 SVG 标记? raphael 等工具包将您发出的命令转换为 VML,adobe 等插件直接渲染 SVG,但我们需要知道您正在使用哪些。
-
是的,我使用的是 Adobe SVG Viewer 3.0
-
您可以尝试 svg.getSVGDocument() 而不是 svg.contentDocument 用于 IE8(如果您想支持非 IE8,您需要为这些环境保留 contentDocument)
-
您好,我在尝试调用 getSVGDocument() 时遇到了运行时错误'对象不支持此属性或方法'。它适用于其他浏览器。
-
您确定页面上没有多个 id 为 mysvg 的元素?
标签: internet-explorer svg