devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
31 lines (24 loc) • 1.08 kB
JavaScript
var domAdapter = require("../dom_adapter");
function getMarkup(element) {
var temp = domAdapter.createElement('div');
temp.appendChild(element.cloneNode(true));
return temp.innerHTML;
}
function fixIENamespaces(markup) {
var first = true;
markup = markup.replace(/xmlns="[\s\S]*?"/gi, function (match) {
if (!first) return "";
first = false;
return match;
});
return markup.replace(/xmlns:NS1="[\s\S]*?"/gi, "").replace(/NS1:xmlns:xlink="([\s\S]*?)"/gi, 'xmlns:xlink="$1"');
}
// T428345 we decode only restricted HTML entities, looks like other entities do not cause problems
// as they presented as symbols itself, not named entities
function decodeHtmlEntities(markup) {
return markup.replace(/"/gi, """).replace(/&/gi, "&").replace(/'/gi, "'").replace(/</gi, "<").replace(/>/gi, ">").replace(/ /gi, " ").replace(/­/gi, "­");
}
exports.getSvgMarkup = function (element) {
return fixIENamespaces(decodeHtmlEntities(getMarkup(element)));
};
;