Envoyé par : ligoz
Date : 06/09/2007 13:21
Bonjour,
Mon appli XUL nécessite un moment de transformer un doc XHTML vers un autre par une XSLT. Dans cette XSLT j'utilise la fonction document() pour y importer un doc XML, exemple (où 'monxml.xml' est dans le répertoire 'content'):
<xsl:variable name="monxml" select="document('monxml.xml')"/>
La console retourne une 'erreur de sécurité', le doc n'est pas importé. Même erreur en employant une url chrome. Il n'y a plus d'erreur avec un chemin absolu, admettons. Le probème est que rien est importé ! alors que (en PHP par exemple) ça marche et que cette fonction document() est documentée
Quelqu'un a t'il eu ce problème ?
Envoyé par : Cerber
Date : 31/10/2007 09:44
Bonjour
J'ai le même problème avec une extention Firefox, dans mon cas, ni les URLs relatives ni les URL chrome:// ne fonctionnent, MAIS les URLs absolues marchent... document('file:/C:/test.xml')
Je suis en train de lire les autres topics du forum et je pense que le topic suivant tombe dans le même problème. http://xulfr.org/forums/read.php?1,9103
Envoyé par : Cerber
Date : 31/10/2007 10:21
Si tu as besoin d'un élément disponnible via chrome j'ai trouvé une solution en m'inspirant du post suivant : http://xulfr.org/forums/read.php?1,869,8(..)
Dans mon xsl :
<xsl:param name="extra-file" /> <xsl:variable name="extra-xml" select="document($extra-file)"/>
Dans mon JS :
var processor = new XSLTProcessor(); processor.importStylesheet(myStyleSheet); //TODO vérifier la compatibilité JAR de chrome2uri processor.setParameter(null,'extra-file','file:'+chrome2uri('chrome://monappli/content/Db.xml'));
et le code de "chrome2uri" (version pré-alpha ==> a tester :) ) :
function chrome2uri(chromeUrl) { try{ var ios = Components.classes["@mozilla.org/network/io-service;1"]. getService(Components.interfaces.nsIIOService); var ch_ec = ios.newURI(chromeUrl, null, null); var chs = Components.classes["@mozilla.org/chrome/chrome-registry;1"]. getService(Components.interfaces.nsIChromeRegistry) var uri = chs.convertChromeURL(ch_ec).path; return uri; }catch(e){ alert(e); return null; } }
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.