57 lines
2.6 KiB
XML
57 lines
2.6 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
|
|
<svg onload="init()" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
|
<foreignObject width="100%" height="100%">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<div id="log">
|
|
This tests assures dynamic SVGDocument creation via DOMParser interface works.
|
|
</div>
|
|
</html>
|
|
</foreignObject>
|
|
|
|
<script>
|
|
<![CDATA[
|
|
function log(message) {
|
|
var logDiv = document.getElementById('log');
|
|
var newDiv = document.createElementNS("http://www.w3.org/1999/xhtml",'div');
|
|
newDiv.appendChild(document.createTextNode(message));
|
|
logDiv.appendChild(newDiv);
|
|
}
|
|
|
|
function init() {
|
|
// Prepare SVG Content as string.
|
|
var documentString = "<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'>" +
|
|
"<g transform='translate(-50, -50)'>" +
|
|
"<path id='path' onclick='mouseHandler(evt)' fill='#FF0000' stroke='#00C000' " +
|
|
"d='M 250 130 C 185 130 150 80 150 80 S 115 25 50 25 m 0 105 c 65 0 100 -50 100 -50 s 35 -55 100 -55'/>" +
|
|
"</g></svg>";
|
|
|
|
// Use DOMParser interface to create a SVGDocument datastructure from SVG content string
|
|
var parser = new DOMParser();
|
|
var svgDocument = parser.parseFromString(documentString, "image/svg+xml");
|
|
|
|
log("DOMParser.parseFromString returned: " + svgDocument + " should be: [object SVGDocument]");
|
|
|
|
// Try some operations on the new document
|
|
log("SVGDocument's rootElement: " + svgDocument.rootElement + " should be: [object SVGSVGElement]");
|
|
log("SVGDocument's rootElement width: " + svgDocument.rootElement.width.baseVal.value + " should be: 400");
|
|
log("SVGDocument's rootElement height: " + svgDocument.rootElement.height.baseVal.value + " should be: 400");
|
|
log("SVGDocument's rootElement first child: " + svgDocument.rootElement.firstChild + " should be: [object SVGGElement]");
|
|
|
|
// Use XMLSerializer interface to return a textual presentation of the newly created document
|
|
var serializer = new XMLSerializer();
|
|
var svgDocumentString = serializer.serializeToString(svgDocument);
|
|
|
|
log("XMLSerializer.serializeToString returned: " + svgDocumentString);
|
|
|
|
// Import all children of the new document's root element in our current document
|
|
var importedNode = document.importNode(svgDocument.rootElement.firstChild, true);
|
|
log("Imported the SVGGElement into our document: " + importedNode + " should be: [object SVGGElement]");
|
|
|
|
document.getElementById("content").appendChild(importedNode);
|
|
}
|
|
]]>
|
|
</script>
|
|
<g id="content" transform="translate(250, 250) rotate(45)">
|
|
</g>
|
|
</svg>
|