begin process at 2012 05 30 03:16:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

variable undefined (javascript)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

variable undefined (javascript)

samedi 2 mai 2009 à 12:57:29 | variable undefined (javascript)

Narvarth

Bonjour,
j'ai créé un site et j'utilise javascript pour afficher la date et l'heure.
Le problème c'est qu'avec IE (8 en l'occurence) ça ne marche pas alors qu'avec Firefox tout se passe bien.

IE dit que les variables 'day' et 'month' sont 'undefined'.
Je sais que ça veut dire que la référence d'objet n'est pas définie à une instance d'un objet.
Mais je ne comprend pas pourquoi.
4 lignes qui posent problème à la fin:
    var days = Translate("days_array", lang);

    var months = Translate("months_array", lang);

    var day = days[date.getDay()];

    var month = months[date.getMonth()];


Voici l'extrait de code de ma page:
<script type="text/javascript" src="time.js" temp_src="time.js"></script>
...
...
<li id="lang">fr</li>

Voici le fichier time.js:

/*
//File : time.js
//Author : Narvarth
//For : SpaceWarchief&#8482;®

// May be incompatible with IE

// Please do not remove these lines
*/

function Translate(
    item,
    lang)
{
    var result;

    if (lang == "fr")
    {
        if (item == "days_array")
        {
            result = new Array(
                "Dimanche",
                "Lundi",
                "Mardi",
                "Mercredi",
                "Jeudi",
                "Vendredi",
                "Samedi");
        }
        else if (item == "months_array")
        {
            result = new Array(
                "Janvier",
                "F&eacute;vrier",
                "Mars",
                "Avril",
                "Mai",
                "Juin",
                "Juillet",
                "Ao&ucirc;t",
                "Septembre",
                "Octobre",
                "Novembre",
                "D&eacute;cembre");
        }
        else if (item == "first_day")
        {
            result = "1er";
        }
    }
    else if (lang == "en")
    {
        if (item == "days_array")
        {
            result = new Array(
                "Sunday",
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday",
                "Saturday");
        }
        else if (item == "months_array")
        {
            result = new Array(
                "January",
                "February",
                "March",
                "April",
                "May",
                "June",
                "July",
                "August",
                "September",
                "October",
                "November",
                "December");
        }
        else if (item == "first_day")
        {
            result = "1st";
        }
    }

    return result;
}



function SetDateString(
    lang,
    sec,
    min,
    hour,
    day,
    day_number,
    month,
    year)
{
    var result;
    var add;

    if (lang == "fr")
    {
        switch (day_number)
        {
            case 1:
            {
                add = "er";
                break;
            }
            default:
            {
                add = "";
                break;
            }
        }
        result = day + " " + day_number + "<sup>" + add + "</sup> " + month + " " + year + " - " + hour + ":" + min + ":" + sec;
    }
    else if (lang == "en")
    {
        switch (day_number)
        {
            case 1:
            {
                add = "st";
                break;
            }
            case 2:
            {
                add = "nd";
                break;
            }
            case 3:
            {
                add = "rd";
                break;
            }
            default:
            {
                add = "th";
                break;
            }
        }
        result = day + " " + month + " " + day_number + "<sup>" + add + "</sup> " + year + " - " + hour + ":" + min + ":" + sec;
    }

    return result;
}



function GetLang()
{
    var lang;

    if (document.getElementById("lang"))
    {
        lang = document.getElementById("lang").innerHTML;
        document.getElementById("lang").style.visibility = "hidden";
    }
    else
    {
        lang = "en";
    }

    return lang;
}

var date = new Date;

function Timer()
{
    var lang = GetLang();
    var days = Translate("days_array", lang);

    var months = Translate("months_array", lang);

    date = new Date;

    var hour = date.getHours();
    var min = date.getMinutes();
    var sec = date.getSeconds();
    var day = days[date.getDay()];
    var day_number = date.getDate();
    var month = months[date.getMonth()];
    var year = date.getYear();
    if (year < 2000)
    {
        year += 1900;
    }
    if (sec < 10)
    {
        sec = "0" + sec;
    }
    if (min < 10)
    {
        min = "0" + min;
    }
    if (hour < 10)
    {
        hour = "0" + hour;
    }
  
  
    //Warning:
    //The following lines change the integer value of day_number
    //It can be a problem for the tests such as (x == 1) because x is not an int but a string: x == "01" instead
  
    //if (day_number < 10
    //&& day_number > 1) // to let 1st and not 01st
    //{
    //day_number = "0" + day_number;
    //}

    // treated in SetDateString(...) function
    //if (day_number == 1)
    //{
    //day_number = "1er";
    //}

    var datetime = SetDateString(
        lang,
        sec,
        min,
        hour,
        day,
        day_number,
        month,
        year);

    if (document.getElementById)
    {
        document.getElementById("dateTime").innerHTML = datetime;
    }
}

function Biper()
{
    Timer();
    setTimeout("Biper()", 1000);
}

window.onload = function()
{
    Biper();
}


Merci d'avance pour tout éclaircissement.
samedi 2 mai 2009 à 13:42:44 | Re : variable undefined (javascript)

Narvarth

Petite précision: mon site est hébergé chez Free. Je l'ai d'abord développé en local (avec WAMP) et tout se passe bien bien en local: pas de problème de design ni de javascript.
Par contre, le site en ligne présente des problèmes avec IE au niveau du design et du javascript.

Connaissez-vous les caractéristiques du(des) serveur(s) Free (version PHP, Apache, ...) ?
samedi 2 mai 2009 à 14:12:58 | Re : variable undefined (javascript)

Bul3

Membre Club
Réponse acceptée !


Bonjour,

free et/ou les autres hébergeurs, au niveau du javascript : c'est pareil !
     le javascript, c'est coté client ! pas serveur !
il existe des différences entres tous les navigateurs et surtout
   au niveau du design ( quoique en utilisant le bon doctype....
   ça s'arrange en général )
MAIS si ton machin fonctionne en local et pas sur ton site, à priori,
    ça n'a pas grand chose à voir avec les navigateurs
    tes soucis doivent être les mêms avec tous les navigateurs,
    sauf IE et Opera qui arrêtent les script et les autres qui continuent
    tu dois aussi avoir des erreurs dans les console d'erreurs !
avec ce que tu nous fournis, tout ce que je peux faire pour t'aider, c'est :
NavigateursQuelques Explications

Chrome
contrôler page actuelle / Options pour développeurs
/ Console Javascript

FireFox
Outils / Console d'erreurs
et mieux : télécharger FireBug

Internet
Explorer
activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux (pour IE < 8) : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS

K-Meleon
Outils / Console d'erreurs

Opera
Outils / Avancé / Console d'erreurs

Safari
Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
<true/>

Cordialement [mon Site] [M'écrire] Bul
samedi 2 mai 2009 à 20:09:25 | Re : variable undefined (javascript)

Narvarth

Merci pour ta réponse.
Oui je sais qu'il doit y avoir une erreur et justement j'ai utilisé FireBug et le débuggeur intégré à IE 8. Résultat: mes deux array 'days' et 'months' sont 'undifined'.
Ma question est donc: pourquoi ?

Voici les lignes qui plantent (les erreurs des deux dernières découlent de celles de deux premières):

// days pas créé
var days = Translate("days_array", lang);
// days devrait être créé mais est undefined

// idem pour months:
var months = Translate("months_array", lang);

// Forcément, après la suite ne fonctionne plus
var day = days[date.getDay()];
var month = months[date.getMonth()];
samedi 2 mai 2009 à 21:18:42 | Re : variable undefined (javascript)

Narvarth

Réponse acceptée !
Bon apparemment, je crois avoir trouvé ce qui n'allait pas. Rien de tel que le "scrutage" de ligne au debugger !!

En fait le problème vient du fait que le 'innerHTML' de:
<li id="lang">fr</li>
donnait 'fr ' et non 'fr'

Je ne sais pas d'où vient cet espace...
Sachant ça, une petite regex, du split et du join et le tour est joué.
Je donne le code pour ceux que ça intéresse:


function GetLang()
{
var lang;

if (document.getElementById("lang"))
{
lang = document.getElementById("lang").innerHTML;
document.getElementById("lang").style.visibility = "hidden";
}
else
{
lang = "en";
}

var reg = new RegExp("[ ,;\\r\\n]+", "gi");

return lang.split(reg).join('').toLowerCase();
}


Par contre, le problème du design n'est pas encore résolu...

En tout cas encore merci Bul3. Je te mets réponse acceptée !


Cette discussion est classée dans : date, var, lang, day, if


Répondre à ce message

Sujets en rapport avec ce message

Changer la couleur du texte en javascript [ par Zoulien ] Bonjour à tous, je souhaite modifier le script suivant afin que le texte s'écrive en blanc. J'ai tous essayé, et je suis au bord du précipice... Merci IE et Mozzila Firefox n'active pas mon javascript de mon formulaire [ par momosan77 ] Bonjour, J'ai un souci, c'est quand j'essaie de valider le formulaire dans Mozzila ou IE celui-ci ne prend pas compte du javascript Alors que si je l' Fonction non activer... [ par momosan77 ] Bonjour, j'expose mon soucis donc c'est que la fonction principale ne considère ni les fonction secondaire no les fonction principale. Alors que sa a Radio HTML et JacvaScript [ par momosan77 ] Bonjour, j'ai actuellement un petit problème je souhaite after un if qui retourner true si un radio html est cocher. Le probleme c'est que je n'arriva ui.datepicker.js : problème de choix d'années :( [ par begueradj ] Bonjour J'ai télécharger le core.ui.datepicker/ui.datepicker.js Il fonctionne bien. Seulement, le choix de l'année qu'il propose commence toujours probleme avec formulaire [ par bech88 ] voila le code aider moi our la formulaires // fonction développée en Aout 2005 par Marie-Agnés Ménard - Conseil Général de Maine et Loire // cette f mon diapo ne s'affiche pas sans connection [ par hitu ] Bonjour j'ai réalisé un diaporama mais celui ne s'affiche pas quand je ne suis pas connecté! Merci d'avance voici mon code: [code=as][code=html] Aide plz!!! [ par udoryl ] J'ai un problème ca marche pas et je comprends pas pourquoi : function saisirCalculerEtAfficher(){ var pond=parseInt(prompt("Entrez la note maxima Utilisation automatique du alert? [ par udoryl ] function saisirCalculerEtAfficher(){ var pond = prompt("Entrez la note maximale possible pour cette evaluation","100"); var test = validerPonderati Problème Bizarre if(var!= NULL) en javascript [ par midoxe ] Bonjour, je me retrouve avce un problème BIZARRE vraiment [^^confus2] !!!!! voici mon code : [code=as]function PromptMessage() { var saisie =


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales