2014-09-22 53 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不會在圖像中運行,但是如果'