我正在尝试为 IE 中的 encodeURIComponent() 中的任何内容设置动画。我知道 IE 不支持 SMIL,但它比使用纯 JS 动画/旋转 svg 标签要容易得多。以下是在 Firefox 和 Chrome 中有效但在 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>');
您会注意到 FakeSmile 的 xlink:href 我认为应该毫无问题地处理动画,因为它不是动态的。如果你尝试一个类似的小提琴,你会在标签内看到它在 IE 中工作:
这是否因为 jsfiddle 端的一些元标记或其他 html 代码而起作用?还是我包含的代码包含在 encodeURIComponent() 中?最终,svg 需要被包装,否则它根本不会显示,不管它是否有动画。