2

用于在浏览器中呈现漂亮的交互式图表的“Highcharts”库有一个导出功能,它将内部使用的 SVG 发送到一些服务器端应用程序,该应用程序对其进行光栅化,并将生成的 PNG、JPEG 或 PDF 发送回去以供下载。

我的问题是可以在浏览器中显示的背景图像和符号在被 Highcharts 导出之前被丢弃,但我想要它们。

所以我注释掉了所有删除他们所有 SVG<image>标签的东西等等(顺便说一下,他们正在使用正则表达式来清理他们内部使用的 SVG ......)。

但是他们为这些标签使用了一些非标准属性,<image>并且它们的坐标与图像的映射不同,所以我必须重新计算并丢弃属性。

所以我使用 DOMParser 解析了他们的 SVG 并做了我应该做的事情,bot 现在我正在寻找一种优雅(或简单)的方式来获取原始 xml - 我已经看到在 Internet Explorer 中可以获得原始xml 使用xmlDOM 文档对象的属性 - 所有其他浏览器是否有等效的东西?我现在正在搜索整整一段时间,但找不到任何真正有用的东西。谢谢 :)

4

1 回答 1

5

您可以在非 IE 浏览器中使用XMLSerializer 。以下函数将在所有主流浏览器中序列化一个 XML 节点:

function serializeXmlNode(xmlNode) {
    if (typeof window.XMLSerializer != "undefined") {
        return (new window.XMLSerializer()).serializeToString(xmlNode);
    } else if (typeof xmlNode.xml != "undefined") {
        return xmlNode.xml;
    }
    return "";
}
于 2011-02-04T14:15:40.530 回答