Nachdem der DOM mit einem neuen SVGweb-Code (durch Ajax) geändert wurde
<svg>
...
</svg>
muss dies ausgeführt werden: svgweb._onDOMContentLoaded();
Aber davor muss eine Zeile im Kernquellcode von SVGweb svg-uncompressed.js oder svg.js auskommentiert werden
svg-uncompressed.js von
if (arguments.callee.done) {
return;
}
zu
if (arguments.callee.done) {
//return;
}
svg.js: diese Zeile finden und löschen:
arguments.callee.done=true;
oder ersetzen durch
arguments.callee.done=false;
BEARBEITEN:
Noch eine Anpassung, um für IE9 zu funktionieren:
für svg.js
von
var a=document.getElementById("__ie__svg__onload");if(a){a.parentNode.removeChild(a);a.onreadystatechange=null}
zu
var IEv=parseFloat(navigator.appVersion.split("MSIE")[1]);if(IEv<9){var a=document.getElementById("__ie__svg__onload");if(a){a.parentNode.removeChild(a);a.onreadystatechange=null;a=null;}}
für svg-uncompressed.js
von
// Bereinigung des onDOMContentLoaded-Handlers zum Verhindern von Speicherlecks in IE
var listener = document.getElementById('__ie__svg__onload');
if (listener) {
listener.parentNode.removeChild(listener);
listener.onreadystatechange = null;
listener = null;
}
zu
// Bereinigung des onDOMContentLoaded-Handlers zum Verhindern von Speicherlecks in IE
var IEv=parseFloat(navigator.appVersion.split("MSIE")[1]);
if (IEv<9) {
var listener = document.getElementById('__ie__svg__onload');
if (listener) {
listener.parentNode.removeChild(listener);
listener.onreadystatechange = null;
listener = null;
}
}