2014-09-22 38 views
0

我试图在IE中的encodeURIComponent()内部设置任何动画。我知道IE不支持SMIL,但它比使用纯JS来动画/旋转svg标签容易得多。下面是一些在Firefox和Chrome浏览器的一个例子,而不是IE:encodeURIComponent中的SVG代码在IE中不工作

var uri = encodeURIComponent(
       '<?xml version="1.0" encoding="utf-8"?>' + 
       '<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" viewBox="0 0 120 40" xml:space="preserve">' + 
       '<script type="text/javascript" xlink:href="http://leunen.me/fakesmile/smil.user.js"/>' + 
        '<circle cx="30" cy="50" r="15" fill="blue" stroke="black" stroke-width="1">' + 
        '<animateMotion path="M 0 0 H 300 Z" dur="8s" repeatCount="indefinite" />' + 
        '</circle>' + 
       '</svg>'); 

你会发现的XLink:HREF到FakeSmile,我倒觉得应该处理没有问题的动画,因为它不是动态。如果您尝试使用类似的小提琴,你会看到它在IE时,在标签内:

http://jsfiddle.net/FG3PG/1/

是否因为的jsfiddle结束一些meta标签或其它的HTML代码的这项工作?或者是我包含的代码被包装在一个encodeURIComponent()中?最终,svg需要被包装或者根本不会出现,无论它是否具有动画效果。

+0

您应该提供适用于FireFox和Chrome的演示程序,但不适用于IE。 (您提供的工作演示只是一个子部分,并不显示问题)。 – 2014-09-22 20:20:32

+0

为什么你需要encodeURIComponent?它是将数据放入图像还是背景图像?你知道JavaScript不会在图像中运行吗? – 2014-09-22 20:43:01

+0

@RobertLongson,是的,我知道js不会在图像中运行,但是如果'