2010-04-06 3 views
0

J'essaie de passer dans une fonction JavaScript deux chemins pour un XML et XSLT. Il semblerait que dans l'exemple HTML ci-dessous que l'utilisation de "../xsl/filename" ne fonctionne pas pour moi dans la fonction xslt(). Si je spécifie le chemin comme étant "./filename" bien que cela fonctionne.Résoudre dossier de frère en JavaScript Fonction

Est-ce que quelqu'un sait comment je peux contourner cela ou trouver un moyen de spécifier un dossier frère sans référence de chemin absolu? Je préférerais ne pas avoir à changer mes chemins de fichier car mon environnement de développement est configuré avec les xslt, les exemples de données et le code source structurés d'une manière particulière.

Merci à l'avance Jamen

<html> 
<head> 
<title></title> 
<script type="text/javascript" src="../lib/jsunit/app/jsUnitCore.js"></script> 
<script type="text/javascript" src="../lib/jquery-1.2.3.js"></script> 
<script type="text/javascript" src="../lib/jquery.xslt.js"></script> 
</head> 
<body> 
<div id="bla"></div> 
<script type="text/javascript"> 
$('#bla').xslt("../sampledata/response1.xml", "../xslt/resultFormatter.xsl"); 

//function testjQuery() { 
// $('#bla').xslt("../sampledata/response1.xml", "../xslt/resultFormatter.xsl"); 
//} 
</script> 
</body> 
</html> 

Répondre

1

Un exemple vivant me donnerait le meilleur moyen de percer vers le bas à ce sujet, mais au lieu de cela ..

Vous allez devoir faire un peu de débogage, j'en ai peur.

Vous pouvez référencer des chemins relatifs d'au moins un niveau profond car les en-têtes qui tirent les fichiers source JS le font également, ce qui exclut les problèmes avec le serveur Web.

Le traitement et l'extraction des ressources semblent se faire côté client, alors ouvrez une console Firebug ou autre chose qui vous donne une idée de ce qui se passe dans votre environnement JS.

Si vous dessinez un blanc, creusez dans la source.

Jetez un oeil au code source,

http://johannburkard.de/software/xsltjs/apidoc/overview-summary-jquery.xslt.js.html

Il y a deux chemins différents,

if (document.recalc) { // IE 5+ 
    // EDIT : Path 1 
} else if (/* EDIT : conditions */) { // Mozilla 0.9.4+, Opera 9+ 
    // EDIT : Path 2 
} // EDIT : No final else, so a silent failure 

Le deuxième paramètre qui est en vous donnant la douleur est en correspondance avec l'expression rationnelle,

var str = /^\s*</; 

dans les deux voies. Quel que soit le chemin parcouru, définissez un point d'arrêt et testez vous-même ces cas (avec les deux valeurs de paramètre xslt que vous avez utilisées). Éliminer les possibilités et continuer à descendre la chaîne de traitement jusqu'à ce que vous trouviez votre point de défaillance.

Je suppose qu'il existe un bug de gestion de correspondance/chaîne de regex quelque part sur la ligne où l'auteur d'origine n'a pas anticipé les chemins relatifs.

Questions connexes