Aller au contenu

pb popup dans feuille xsl.


Anonymus

Sujets conseillés

Bonjour,

J'ai une feuille de style xsl, qui devrait afficher un popup javascript.

Ce javascript marche très bien sur une page html classique, mais refuse de marcher avec la feuille xsl.

le fichier xsl :

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.01" encoding="ISO-8859-1"
doctype-public="-//W3C//DTD HTML 4.01//EN"
doctype-system="http://www.w3.org/TR/html4/strict.dtd" />
<xsl:template match="/">
<html>
<head>
<script language="JavaScript" type="text/javascript" src="js/moteur.xsl.js.php"></script>
<link rel="stylesheet" type="text/css" href="css/moteur.xsl.css.php"/>
</head>
<div id="curseur" class="infobulle"></div>
<body>
<xsl:for-each select="hotels/hotel">
<table border="0" width="100%" cellspacing="0" cellpadding="0" style="text-align:justify">
<tr>
<td rowspan="2" valign="top" width="10%">
<img height="75px" width="75px">
<xsl:attribute name="src">
<xsl:value-of select="photo" />
</xsl:attribute>
</img>
</td>

<td valign="top" width="80%">
<xsl:value-of select="nomhotel" />

<img src="images/star.jpg" border="0" />

<xsl:if test="categorie > '1'">
<img src="images/star.jpg" border="0" />
</xsl:if>

<xsl:if test="categorie > '2'">
<img src="images/star.jpg" border="0" />
</xsl:if>

<xsl:if test="categorie > '3'">
<img src="images/star.jpg" border="0" />
</xsl:if>

<xsl:if test="categorie > '4'">
<img src="images/star.jpg" />
</xsl:if>
</td>

<td valign="top" rowspan="2" width="10%">
<br />

Prix :
<font color="red">
<b>
<xsl:value-of select="disponibilites/prix" />

</b>

IVA inclus
<br />

- par chambre</font>

<br />

<font color="red">
<xsl:choose>
<xsl:when test="disponibilites/servicio='BB'">- petit dejeuner inclus</xsl:when>

<xsl:when test="disponibilites/servicio = 'OB'">- logement seul</xsl:when>

<xsl:when test="disponibilites/servicio = 'RO'">- logement seul</xsl:when>

<xsl:when test="disponibilites/servicio = 'HB'">- demi pension</xsl:when>

<xsl:when test="disponibilites/servicio = 'FB'">- pension complete</xsl:when>

<xsl:otherwise>- Logement seul</xsl:otherwise>
</xsl:choose>
</font>

<br />

<font color="red">- pour
<xsl:value-of select="disponibilites/duree" />

jour(s)</font>

<br />

<p />

<a target="_top">
<xsl:attribute name="href">
<xsl:value-of select="urlresa" />
</xsl:attribute>

<img src="images/reserv1.jpg" border="0" />
</a>

<br />

<xsl:value-of select="substring-before(//paxes1,'-')" /> personne(s)
<br />

<xsl:value-of select="//n_habitaciones" /> chambre(s)
<br />

type :
<a disable-output-escaping="yes" onMouseOver="montre()" onMouseOut="cache()"><xsl:value-of select="//disponibilites/typehabitation" /></a>
</td>
</tr>

<tr>
<td valign="top">
<font size="2"> <xsl:value-of select="//description" /></font>
</td>
</tr>
</table>

<hr width="97%" />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

le javascript (dans un fichier externe):

<!--
function GetId(id)
{
return document.getElementById(id);
}
var i=false; // La variable i nous dit si la bulle est visible ou non

function move(e) {
if(i) { // Si la bulle est visible, on calcul en temps reel sa position ideale
if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
GetId("curseur").style.left=e.pageX + 5+"px";
GetId("curseur").style.top=e.pageY + 10+"px";
}
else {
GetId("curseur").style.left=window.event.x + 5+"px";
GetId("curseur").style.top=window.event.y + 10 + document.body.scrollTop+"px"; // Sous IE, voici un petit hack pour que lors du scroll la position reste bonne !
}
}
}

function montre() {
text ="<font color=red>COUCOU, c'est un test !!</font>";
if(i==false) {
GetId("curseur").style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
GetId("curseur").innerHTML = text; // Cette fonction est a améliorer, il parait qu'elle n'est pas valide (mais elle marche)
i=true;
}
}
function cache() {
if(i==true) {
GetId("curseur").style.visibility="hidden"; // Si la bulle etais visible on la cache
i=false;
}
}
document.onmousemove=move; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
//-->

et la feuille de style css :

        <!--
.infobulle{
position: absolute;
visibility : hidden;
border: 3px solid #FE9438;
padding: 10px;
font-family: Verdana, Arial;
font-size: 10px;
background-color: #fcfcfc;
margin-left:-400px;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->

Dans le meilleur des cas, celle-ci s'affiche tout en haut du fichier, alors qu'elle devrait s'afficher juste à coté du lien <a> qu'elle est sensée renseigner.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...