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

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:49
Sur un site mais je ne sais plus lequel.
Mais pourquoi cette fonction fonctionne sous MSIE et pas sous firefox et qu'il n'y ai pas d'erreur dans le lancement ou le fonctionnement.
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:57
le référencement aux objets ne sont pas forcément les mêmes, IE est un peu plus conciliant avec sa collection document.all, la bonne façon de procéder restant le fameux document.getElementById

on peut essayer encore un truc,
est ce que ton calendar par défaut est invisible, si non il suffit de le mettre dans un DIV que l'on rend visible mais bon sans plus d'info !!!!



;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 à 21:00
Il est par défault invisible et il se trouve dans une div.
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 à 21:03
c'est donc peut être ce DIV qu'il faut rendre visible
...
0

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
18 déc. 2006 à 21:08
justement l'id "cal" correspond à la DIV
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 à 21:15
alors met à la place de
calendar.cal.style.visibility = "visible";
document.getElementById("cal")

.style.visibility = "visible";
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 à 21:58
C'est ce qui est mis dans la fonction showCalendar()

En voici le code :

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

sinon voilà la definition de Calendar qui est une fonction :

function Calendar()
{
    this.elementId = "";
    this.element = null;

    this.weekday = 0;
    this.day = 0;
    this.month = 0;
    this.year = 0;

    this.cday = 0;
    this.cmonth = 0;
    this.cyear = 0;
    this.cyear2 = 0;

    this.mappingArray = new Array();

    this.cal = document.getElementById("cal");
    this.cald = document.getElementById("cald");
    this.calm = document.getElementById("calm");
    this.caly = document.getElementById("caly");
}
0
Rejoignez-nous