X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/blobdiff_plain/3d59c472dd284fff830f11a5683b4148bf4b4f24..3c4367d8e03450e9a73e61f4247145d2b6c86a33:/skins/ajax_scripts/fragment_importer.js diff --git a/skins/ajax_scripts/fragment_importer.js b/skins/ajax_scripts/fragment_importer.js index 6839a16..52d7eb0 100644 --- a/skins/ajax_scripts/fragment_importer.js +++ b/skins/ajax_scripts/fragment_importer.js @@ -75,17 +75,30 @@ FragmentImporter.prototype.populateBaseElement = function(req) { } if (contentType.indexOf('text/xml') !== -1) { var fragments = req.responseXML.documentElement.childNodes; - var fragment, dest, scripts, i, j; + var element, dest, scripts, i, j; for (i=0 ; i < fragments.length ; i++) { - fragment = fragments[i]; - if (fragment.nodeName === 'fragment') { - dest = document.getElementById(fragment.getAttribute('id')); - if(dest) { - dest.innerHTML = fragment.firstChild.nodeValue; - scripts = dest.getElementsByTagName('script'); - for (j=0 ; j < scripts.length ; j++) { - globalScriptRegistry.loadScript(scripts[j]); } - } + element = fragments[i]; + switch (element.nodeName) { + case 'fragment' : + dest = document.getElementById(element.getAttribute('id')); + if(dest) { + dest.innerHTML = element.firstChild.nodeValue; + scripts = dest.getElementsByTagName('script'); + for (j=0 ; j < scripts.length ; j++) { + globalScriptRegistry.loadScript(scripts[j]); } + } + break; + case 'base' : + var headBase = document.getElementsByTagName('base'); + if (headBase.length > 0) { + headBase[0].setAttribute('href', element.getAttribute('href')); + } + else { + headBase = document.createElement('base'); + headBase.setAttribute('href', element.getAttribute('href')); + document.head.appendChild(headBase); + } + break; } } }