Javascript et firefox

Résolu
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012 - 18 déc. 2006 à 19:12
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012 - 23 août 2007 à 14:19
Bonjour,

Je me permets de poster ce message parce que j'ai un soucis avec le navigateur Firefox.

Voici mon source :

<td>
----

,

,

   
</td>
...

----

,
,
,
,
,
,
,
,
,
,
,

----

<table width=\"300\" border=\"1\" class=\"cal\" id=\"cald\">
----

 Lun, Mar, Mer, Jeu, Ven, Sam, Dim,

 ----
, , , , , , ,
----
, , , , , , ,
----
, , , , , , ,
----
, , , , , , ,
----
, , , , , , ,
----
, , , , , , ,

</tr>
</table>

et voici la fonction appelée :

function displayCalendar(id)
{
    var calendar = new Calendar();

    var i;
    var element;
    for (i=0 ; i<4 ; i++)
    {
        element = document.getElementById("cal_m_0" + i);
        element.onmouseover = highlightHead;
        element.onmouseout = unhighlightHead;
    }
    for (i=0 ; i<4 ; i++)
    {
        element = document.getElementById("cal_y_0" + i);
        element.onmouseover = highlightHead;
        element.onmouseout = unhighlightHead;
    }
    element = document.getElementById("cal_c");
    element.onmouseover = highlightHead;
    element.onmouseout = unhighlightHead;

    initElement(id);
    var dateValue = calendar.element.value;
    if (dateValue != "")
    {
        var s = dateValue.split("/");
        var d;
        var m;
        var y;
        var validDate = true;
        if (s.length == 3)
        {
            d = s[0];
            if (d.charAt(0) == "0")
            {
                d = d.substr(1);
            }
            m = s[1];
            if (m.charAt(0) == "0")
            {
                m = m.substr(1);
            }
            y = s[2];
        }
        else
        {
            validDate = false;
        }

        if (validDate)
        {
            initCalendar(new Date(y, m-1, d));
        }
        else
        {
            initCalendar(new Date());
        }
    }
    else
    {
        initCalendar(new Date());
    }
    fillCalendar();
    showCalendar();
}

function showCalendar()
{
    calendar.cal.style.visibility = "visible";
    showDayChoice();
    hideMonthChoice();
    hideYearChoice();
}

Mon soucis c'est qu'avec Firefox lorsque je clique sur l'image rien ne se passe (pas meme une erreur sur la console d'erreur alors que sous MSIE 6.0 ou 7.0 cela fonctionne.

Pouvez-vous me dire ce qu'il ne va pas dans le bout de code que j'ai fourni ?

27 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 déc. 2006 à 22:04
est ce que le
existe dans ton document
est ce qu'il à un style ???
3
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
18 déc. 2006 à 22:13
Voilà comment elle est déclarée :
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 déc. 2006 à 23:01
j'ai trouvé ceci dans le document

que renferme cette classe au niveau du style ou de la feuille de style
3
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
19 déc. 2006 à 17:39
je l'ai supprimé cette classe et je l'ai enlevé de la div et c'est pareil :(
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
19 déc. 2006 à 17:59
Bon je viens de le remettre te voilà ce quelle contient :

.ctx                        {border-left:3px solid floralwhite; border-right:3px solid green; border-top:3px solid floralwhite; border-bottom:3px solid green;
                             position:absolute; text-align:left; font-family: Arial; font-size:10pt; width:200px; background-color:antiquewhite;
                             color: green; visibility:hidden; font-style:normal; font-variant:normal; font-weight:bold; white-space: nowrap;}
3
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
19 déc. 2006 à 18:56
J'ai trouvé d'ou cela venait c'est dans la fonction suivante et c'est ce qui est en gras
function initElement(id)
{
    calendar.elementId = "";
    calendar.element = document.getElementById(id);

    var hGap = -92;
    var vGap = 12;
    var elementStyle = calendar.cal.style;
    var rightedge = document.body.clientWidth - event.clientX - hGap;
    var bottomedge = document.body.clientHeight - event.clientY - vGap;
   
    if (rightedge < calendar.cal.offsetWidth)
    {
        elementStyle.left = document.body.scrollLeft + event.clientX - hGap - calendar.cal.offsetWidth;
    }
    else
    {
        elementStyle.left = document.body.scrollLeft + event.clientX + hGap;
    }
   
    if (bottomedge < calendar.cal.offsetHeight)
    {
        elementStyle.top = document.body.scrollTop + event.clientY - vGap - calendar.cal.offsetHeight;
    }
    else
    {
        elementStyle.top = document.body.scrollTop + event.clientY + vGap;
    }

    calendar.calm.style.left = elementStyle.left;
    calendar.calm.style.top = parseInt(elementStyle.top) + 28;
    calendar.caly.style.left = parseInt(elementStyle.left) + 6;
    calendar.caly.style.top = parseInt(elementStyle.top) + 33;
}

Mais je ne sais pas comment faire pour récuperer les dimensions que j'ai besoin.
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
19 déc. 2006 à 19:46
Y0 !




pas meme une erreur sur la console d'erreur


pourtant FireFox ne connaît pas event












si je saisi tous, cette fonction te permet d'avoir ton calendrier dans la fenêtre courante
dans ce cas on peut récupérer les dimensions de la fenêtre de la façon suivante...

var Fenetre = new RECT();
//-------------
function RECT(){
  this.Left   =0;
  this.Top    =0;
  this.Right  =0;
  this.Bottom =0;
}

//------------------------
function Get_DimFenetre(){
  var DocRef;
 
  with( Fenetre){
    if( window.innerWidth){
      with( window){
        Left   = pageXOffset;
        Top    = pageYOffset;
        Right  = innerWidth;
        Bottom = innerHeight;
      }
    }
    else{ // Cas Explorer à part
      if( document.documentElement && document.documentElement.clientWidth)
        DocRef = document.documentElement;
      else
        DocRef = document.body;

      with( DocRef){
        Left   = scrollLeft;
        Top    = scrollTop;
        Right  = clientWidth;
        Bottom = clientHeight;
      }
    }
    //-- limite Maxi Fenêtre Affichage
    Right  += Left;
    Bottom += Top;
  }
}







on ne fait nullement référence à event sauf éventuellement si l'on veut déplacer le camlendrier lors d'un scroll de la page, mais c'est un autre problème...

Nota :
 je fais une gestion de la fenêtre dans une source d"pos"e sur le site, peut être à voir



[code.aspx?ID =36300 INFO
BULLE TOUJOURS VISIBLE]








A suivre...
;0)
3
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
23 août 2007 à 14:19
Excusez-moi pour le retard mais cela à fonctionner.

Maintenant, je dois fermer le sujet mais je ne sais pas comment faire ?
3
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 déc. 2006 à 19:30
B
onjour...

essaies de mettre un HREF="javascript:void(0);" dans ton lien si c'est bien la ligne

[javascript:void(0);



onclick="displayCalendar('FinSejour');">]



qui te poses probléme...


;0)
0
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
18 déc. 2006 à 19:39
Bonjour,

Je viens de le mettre mais cela ne change rien et en plus j'ai l'image qui est encadrer du lien :(
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 déc. 2006 à 19:48
pour supprimer la bordure il suffit de mettre border= "0" mais le problème est ailleurs quoiqu'il arrive...
je verrais cela sur cette ligne
  calendar.cal.style.visibility = "visible";




si l'objet Calendar posséde un ID il est préférable de le référencer par
document.getElementById("cal).style.visibility = "visible";





mais la je m'avance ne connaissant pas l'Objet Calendar



;0)
0
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
18 déc. 2006 à 19:51
Bonjour,

L'objet calendar est crée dans la fonction displayCalendar(id) et il sert à manipuler le calendrier via des  boutons qui se trouve dans la div.

Dont j'ai besoin de cette objet pour faire défiler les jours, les mois ou les année.
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 déc. 2006 à 20:00
je ne parle pas dela variable


c

alendar, qui peut être un objet, mais de l'Objet


C

alendar


var calendar = new Calendar();

est ce que calendar à une ID ? mets un alert pour voir

var calendar = new Calendar();


alert( calendar.id);





;0)
0
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
18 déc. 2006 à 20:08
Je viens de tester et il m'affiche undefined donc il en a pas mais au départ il n'y avait pas de var calendar = new Calendar(); mais seulement calendar = new Calendar();
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 déc. 2006 à 20:15
essaies alert( calendar.tagName);
mais tu dois bien avoir la source dans laquelle est défini l'objet Calendar...

Nota :

calendar = new Calendar();
ou
var calendar = new Calendar();
c'est la même chose dans le 1st

le var est implicite,

mais la 2nd est préférable
0
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
18 déc. 2006 à 20:22
Non je n'ai pas la source ou mais il est dans le package de java mais je ne sais pas dans quel fichier

et sinon le resultat de alert(calendar.tagname); c'est undefined
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 déc. 2006 à 20:26
attention tagName et non tagname
...
;0)

0
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
18 déc. 2006 à 20:27
J'avais fait un copier coller dans mon editeur mais pas dans ma réponse.
0
sfergant Messages postés 20 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 12 janvier 2012
18 déc. 2006 à 20:37
J'avais fait un copier coller dans mon editeur mais pas dans ma reponse :)
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
18 déc. 2006 à 20:44
peut on savoir ou tu l'a récupéré pour essayer de ce faire une idée


;0)
0
Rejoignez-nous