0

我试图在 SVG 标记内嵌套一个脚本标记,但 SVG 在 Safari 中显示为空白。

以下小提琴适用于 FF 15.0、Chrome 21.0 和 IE9,但不适用于 Windows 上的 Safari 5。

http://jsfiddle.net/5rnbU/4/

<svg height="320" width="320" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"> 
    <script >
    setTimeout("run()",1000);

    function run(){
        var e = document.getElementById("rect");
        console.log(e);
        setTimeout("run()",1000);
    }
    </script>
    <rect id="rect" ry="6" rx="6" fill="silver" height="320" width="320" y="0" x="0"/>
</svg>

SVG 直接嵌入到 HTML 中。如果删除了 script 标签,这将起作用,如果您检查 SVG,您将看到 script 标签包含以下 SVG 元素。为什么?有哪些解决方法?

4

1 回答 1

0

JSFiddle 需要你在 javascript 面板中编写 javascript 代码。您在 html 面板中编写 javascript 代码,而 JSFiddle 无法正确运行它。

正确的方法是:

http://jsfiddle.net/5rnbU/7/

在 html 面板中编写 html:

<svg height="320" width="320" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"> 
    <rect id="rect" ry="6" rx="6" fill="silver" height="320" width="320" y="0" x="0"/>
</svg>

在 javascript 面板中编写 javascript:

setTimeout("run()",1000);

function run(){
    var e = document.getElementById("rect");
    console.log(e);
    setTimeout("run()",1000);
}

不要把它们都写在 html 面板中。

于 2013-04-29T14:58:52.343 回答