From e84f5c7fa632192d9c030185820021c3a88a8f4e Mon Sep 17 00:00:00 2001
From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr>
Date: Fri, 11 Apr 2014 11:49:03 +0200
Subject: [PATCH] =?utf8?q?Mise=20=C3=A0=20jour=20de=20la=20balise=20<base>?=
 =?utf8?q?=20du=20document=20pour=20que=20les=20liens=20relatifs=20fonctio?=
 =?utf8?q?nnent=20correctement.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

---
 skins/ajax_scripts/fragment_importer.js | 29 ++++++++++++++++---------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/skins/ajax_scripts/fragment_importer.js b/skins/ajax_scripts/fragment_importer.js
index 6839a16..6caaaa2 100644
--- a/skins/ajax_scripts/fragment_importer.js
+++ b/skins/ajax_scripts/fragment_importer.js
@@ -75,17 +75,26 @@ 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) {
+						headBase[0].setAttribute('href', element.getAttribute('href'));
+						console.info('set base href:', headBase[0].href);
+					}
+					break;
 			}
 		}
 	}
-- 
2.20.1