通过D3's.attr不在序列化的(serializeToString)字符串中
Multiple classes assigned via D3's .attr are not in the serialized (serializeToString) string
尝试序列化D3创建的SVG元素时,结果字符串中不会出现多个类。例如http://bl.ocks.org/mbostock/4063318有一个位,它添加了一个类来指示数据点的颜色:
rect.filter(function(d) { return d in data; })
.attr("class", function(d) { return "day " + color(data[d]); })
它在浏览器中正确渲染,当检查元素时,它们看起来像这样:
<rect class="day q7-11" ...
然而,当我序列化元素时,它们是这样的(即缺少第二个类):
<rect class="day" ...
我通过将以下内容放在链接到上面的代码的底部来序列化代码:
var svg = document.getElementsByTagName("svg")
var serializer = new XMLSerializer();
var str = serializer.serializeToString(svg[3]);
console.log(str);
作为更广泛的上下文,我有一个通过将序列化的SVG发送到服务器以转换为图像来批量生成D3图的过程。除了这个错误,这个过程是有效的。
因此,我正在寻找一种方法来序列化第二个类和第一个类,而不必过多地修改我的进程。
应用第二个类的代码在d3.csv()中,它是异步的。因此,序列化发生在类更新之前。将序列化代码放在d3.csv()回调中可以修复此问题。
相关文章:
- Ajax发布表单序列化,发布引号'
- 序列化数据属性中对象的最可靠方法
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 为什么JSON.stringify没有序列化原型值
- 有没有一个Nodejs库可以序列化和反序列化命名组件的路径(比如URL路径名)
- 是否可以在javascript中反序列化java对象
- jQuery Ajax数组序列化错误
- 对象序列化,JAVA,Javascript
- 在jquery中以序列化的形式传递额外的paparameter
- 如何使用angularjs序列化对象
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- javascript中是否有更标准化的方法来转换(序列化)非表单数据以与ajax一起使用
- 在html标记中序列化javascript代码
- 如何在C#中反序列化json对象
- jQueryAJAX-将额外的键/值对推送到序列化的$_POST数组中
- 使用JSON序列化图论树的解决方法
- PHP未从AJAX接收序列化数据
- 如何序列化包括影子 DOM 在内的 HTML DOM
- 序列化表单时进行编码
- 序列化没有列的表'id'