Text 如何将svg树作为文本插入DOM
我已经嵌入了我使用ajax创建的Dynamicly的svgText 如何将svg树作为文本插入DOM,text,svg,xmlnode,Text,Svg,Xmlnode,我已经嵌入了我使用ajax创建的Dynamicly的svg $.ajax({ url: 'file.svg', dataType: 'text', success: function(svg) { var svg = $(svg).appendTo('body'); var shape = svg.find('g#shape'); // how to get shape as text. } }); 如何获得svg树,例如,一个路径很少的组,作为文本,与
$.ajax({
url: 'file.svg',
dataType: 'text',
success: function(svg) {
var svg = $(svg).appendTo('body');
var shape = svg.find('g#shape');
// how to get shape as text.
}
});
如何获得svg树,例如,一个路径很少的组,作为文本,与jQuery中的html工作相同?我找到了一种方法,我编写了这个插件,返回svg的文本,可能会与嵌入html DOM的任何xml一起工作
$.fn.xml = function() {
function serialize(node) {
var i;
var text = '<' + node.nodeName;
for(i = 0; i < node.attributes.length; ++i) {
text += ' ' + node.attributes[i].name + '="' +
node.attributes[i].value + '"';
}
text += '>';
if (node.childNodes.length) {
for (i = 0; i < node.childNodes.length; ++i) {
if (node.childNodes[i] instanceof Text) {
text += node.childNodes[i].wholeText
} else if (node.childNodes[i] instanceof SVGElement) {
text += serialize(node.childNodes[i]);
}
}
}
return text + '</' + node.nodeName + '>';;
}
return serialize(this[0]);
};
我找到了一种方法,我编写了这个插件,它返回SVG的文本,可能可以处理嵌入HTMLDOM中的任何xml
$.fn.xml = function() {
function serialize(node) {
var i;
var text = '<' + node.nodeName;
for(i = 0; i < node.attributes.length; ++i) {
text += ' ' + node.attributes[i].name + '="' +
node.attributes[i].value + '"';
}
text += '>';
if (node.childNodes.length) {
for (i = 0; i < node.childNodes.length; ++i) {
if (node.childNodes[i] instanceof Text) {
text += node.childNodes[i].wholeText
} else if (node.childNodes[i] instanceof SVGElement) {
text += serialize(node.childNodes[i]);
}
}
}
return text + '</' + node.nodeName + '>';;
}
return serialize(this[0]);
};
可以使用XMLSerializer序列化节点。像这样的
var XMLS = new XMLSerializer();
var string = XMLS.serializeToString(node);
可以使用XMLSerializer序列化节点。像这样的
var XMLS = new XMLSerializer();
var string = XMLS.serializeToString(node);
根据您的浏览器,它可以使用以下两种序列化程序之一:
function xmltostring(domElem) { // Input the NODE of the DOM element
if (window.XMLSerializer) { // FF, Chrome, IE10 has an internal serializer
var XMLS = new XMLSerializer();
var xmlString = XMLS.serializeToString(domElem);
} else if (window.ActiveXObject){ // IE9 uses ActiveX
var xmlString = domElem.xml;
}
return xmlString;
}
注意:Safari也适用。IE8及以下版本无法处理SVG本机需要的插件,未经此功能测试 根据您的浏览器,它可以使用以下两种序列化程序之一:
function xmltostring(domElem) { // Input the NODE of the DOM element
if (window.XMLSerializer) { // FF, Chrome, IE10 has an internal serializer
var XMLS = new XMLSerializer();
var xmlString = XMLS.serializeToString(domElem);
} else if (window.ActiveXObject){ // IE9 uses ActiveX
var xmlString = domElem.xml;
}
return xmlString;
}
注意:Safari也适用。IE8及以下版本无法处理SVG本机需要的插件,未经此功能测试