javascript - 如何使用 javascript 操作 SVG 节点,以便它可以在 MS Edge 中工作?

标签 javascript html svg microsoft-edge

我有一个 svg 元素,里面有 linearGradient 。在某些时候,我需要更改渐变颜色,所以我这样做:

var stops = [];
for (var i in description) {
    stops.push('<stop offset="' + i + '" stop-color="' + description[i] + '"/>');
}
var colorBar = svg.getElementById('colorMapGradient');
colorBar.innerHTML = stops.join('');

它在 FF 和 Chrome 中工作得很好,但当我的页面在 Edge 中加载时不会改变任何事情。当我在该浏览器中调试它时,我看不到 colorBar 对象的属性,包括 innerHtml,就好像它不是一个普通的 HTML 节点(我猜是的)。然而,一组常用的属性在其他浏览器中是可见的。 那么是否有任何解决方法可以将颜色停止设置为 Edge 中的 LinearGradient ?

最佳答案

感谢Robert Longson ,我通过从 javascript 访问 DOM 使其工作:

            var colorBar = svg.getElementById('colorMapGradient');
            while (colorBar.firstChild) {
                colorBar.removeChild(colorBar.firstChild);
            }
            for (var i in description) {
                var stopNode = document.createElementNS('http://www.w3.org/2000/svg', 'stop');
                stopNode.setAttribute('offset', i);
                stopNode.setAttribute('stop-color', description[i]);
                colorBar.appendChild(stopNode);
            }

关于javascript - 如何使用 javascript 操作 SVG 节点,以便它可以在 MS Edge 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37120601/

相关文章:

javascript - 使用 xml 引用/链接到 javascript 中的对象

javascript - 如何使用 AJAX 告诉 PHP 在文章下方显示哪些评论?

javascript - 当 css 显示无阻止时对象标记重新加载

html - W3C 灰度 SVG 过滤器

javascript - WordPress 重复了一些元素,我不知道为什么

javascript - 以跨浏览器方式使用 Javascript 的 DOMParser 时,如何检测 XML 解析错误?

html - 多个标记谷歌地图嵌入 API

html - 如何使用 Twitter Bootstrap 使网站适合移动设备?

javascript - 我应该如何在 HTML 中显示数字以便以后在 javascript 中计算

css - 如何使用 CSS 将 SVG 图形动画化为进度条