From 66f03781c828aed47960f24c5601e867c3f18bad Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr> Date: Fri, 11 Apr 2014 11:55:30 +0200 Subject: [PATCH] =?utf8?q?Recopie=20du=20code=20=C3=A0=20partir=20de=20fra?= =?utf8?q?gment=5Fimporter.js=20pour=20prise=20en=20charge=20de=20la=20bal?= =?utf8?q?ise=20<base>.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/ajax_scripts/ajax_form_manager.js | 33 +++++++++++++++---------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/skins/ajax_scripts/ajax_form_manager.js b/skins/ajax_scripts/ajax_form_manager.js index 8b51b2e..fed198c 100644 --- a/skins/ajax_scripts/ajax_form_manager.js +++ b/skins/ajax_scripts/ajax_form_manager.js @@ -391,19 +391,26 @@ FormManager.prototype.loadResponse = function(req) { return; } var fragments = req.responseXML.documentElement.childNodes; - var fragment, dest; - var i; - for (i=0 ; i<fragments.length ; i++) { - fragment = fragments[i]; - if (fragment.nodeName === 'fragment') { - dest = document.getElementById(fragment.getAttribute('id')); - dest.innerHTML = fragment.firstChild.nodeValue; - - scripts = dest.getElementsByTagName('script'); - var j; - for (j=0 ; j < scripts.length ; j++) { - globalScriptRegistry.loadScript(scripts[j]); - } + var element, dest, i, j; + for (i=0 ; i < fragments.length ; i++) { + 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) { + headBase[0].setAttribute('href', element.getAttribute('href')); + console.info('set base href:', headBase[0].href); + } + break; } } break; -- 2.20.1