3 回答

TA贡献1858条经验 获得超8个赞
您可能会遍历DOM并为其生成纯JS对象表示,然后将其提供给DojoX序列化器。但是,您必须首先决定如何计划将DOM元素,它们的属性和文本节点毫无歧义地映射到JS对象。例如,您将如何表示以下内容?
<parent attr1="val1">
Some text
<child attr2="val2"><grandchild/></child>
</parent>
像这样?
{
tag: "parent",
attributes: [
{
name: "attr1",
value: "val1"
}
],
children: [
"Some text",
{
tag: "child",
attributes: [
{
name: "attr2",
value: "val2"
}
],
children: [
{ tag: "grandchild" }
]
}
]
}
我认为DojoX不立即支持DOM序列化的原因可能完全是这样的:需要首先选择一种将DOM映射到JS对象的方案。有没有可以采用的标准方案?您的JS对象会简单地模仿没有任何功能的DOM树吗?我认为您必须首先定义对“将DOM序列化为JSON”的期望。

TA贡献1864条经验 获得超2个赞
看来您必须自己编写。JSON序列化数据也可能不是您的任务(DOM兼容性表)的理想选择。您可能必须自己迭代对象,检查属性的类型等等。
var functions = [];
var strings = [];
for( var key in window ) {
if( typeof window[key] == 'string' ) {
strings[strings.length] = key;
} else if( typeof window[key] == 'function' ) {
functions[functions.length] = key;
} else if( ... ) { ... }
}
...
添加回答
举报