JavaScript + SVG 不适用于 Tor 和 IE

标签 javascript internet-explorer svg tor

我制作了一个简单的 SVG,它是用 Javascript 制作的动画。它可以与 Chrome、Firefox、Opera 等完美配合。但是,它不能与 TOR 或 Internet Explorer 配合使用。

我检查了 Tor 和 Internet Explorer 上是否启用了 JavaScript,答案是肯定的。为什么使用JS的简单动画在能够运行JS的浏览器上无法正确显示?这是 SVG 特有的吗?

下面是我想要在这些浏览器上运行的一个简化示例(尤其是在 Tor tbh 上):`

<svg  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="720" height="720" viewBox="0 0 720 720">
<g transform="translate(360,360)">
<line id="hand" transform="rotate(0)" stroke-width="4" y1="0" y2="0" stroke-linecap="round" stroke="black"/>
</g>
</svg>

<script>
function sleep(ms) 
{
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function run()
{
    var x = 0;
    while (x < 360)
        {
        await sleep(10);
        h.setAttribute("y2",x.toString());
        h.setAttribute("transform","rotate( " + x.toString() + " )");
        x = x + 1;
        }
}

var h = document.getElementById("hand");
run();
</script>

最佳答案

这大致相当于“非异步”代码:

var x = 0;
function run() {
  if (x < 360) {
    h.setAttribute("y2",x.toString());
    h.setAttribute("transform","rotate( " + x.toString() + " )");
    x++;
    window.setTimeout(run, 10);
  } 
}

var h = document.getElementById("hand");
window.setTimeout(run, 10);

关于JavaScript + SVG 不适用于 Tor 和 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43836565/

相关文章:

javascript - 查找 DOM 元素上使用 jQuery 添加的回调函数

javascript - 如何修改JavaScript对象名称?

css - 悬停时的 SVG 摇动动画

css - <symbol> 的 <use> 元素的填充颜色不会改变颜色

javascript - Javascript 中的不同结果

asp.net-mvc - 如何缓存 FileContentResult 以提高性能?

html - IE 8 div 和 css 游标

html - IE8 CSS 文本间距问题

svg - 如何使用 MagickNet 从流中读取 SVG 文件

javascript - 需要根据选择选项的变化设置<p>