IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Probleme Object Error Expected sur un OnClick


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Probleme Object Error Expected sur un OnClick
    bonjour a tous,

    qqun pourrait il me dire quel est le probleme avec ce petit bout de code sachant que qd je clique sur le bouton javascript me genere une erreur du type object error expected. Apparemment il n accepte pas le loadpage() sur le onclick et je ne vois pas pourquoi...

    <html>
    <head>
    <script languague="javascript">


    function loadpage()
    {
    alert('redalert');
    }

    function drawButton()
    {
    document.write("<FORM> <INPUT TYPE='button' VALUE='Boton' OnClick='loadpage()'> </FORM>");
    }

    </script>

    <title>Fenetre de test de boutton</title>
    </head>

    <body onLoad="javascript:drawButton()">

    </body>
    </html>

    Merci a tous pour votre aide !

    Nico
    ...loves you.....

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Choses à faire :
    1. Pense à la balise [CODE]
    2. Résume clairement ton problème
    3. Pense à ce que ton titre explique clairement ton problème
    4. Respecte les conventions du W3C/EMCAScript*

    *
    - Le W3C exige que toutes les nom de balise AINSI QUE LEURS ATTRIBUTS soient en minuscule. FORM, onLoad, ... sont des erreurs.
    - Le W3C exige que toute balise ouvert soit fermée. <input type="text"> est une erreur.
    - Le W3C exige un attribut type pour les balises script (type="text/javascript" dans ton cas)
    - Le W3C recommande de ne plus mettre "javascript:" pour les evenements (il ne doit rester utilisé que dans le cas du HREF)
    - Le EMCAScript recommande de ne pas utiliser document.write
    - JE conseille de n'utiliser document.write que dans le flux de la balise body et jamais dans les events, autrement, utiliser document.body.appendChild et document.createElement
    - ...
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  3. #3
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    +1 pour Freemy
    J'ajouterai que document.write écrit dans le flux à l'endroit où il est invoqué. Dans le cas présent, ça revient à ajouter une <form> à l'intérieur du gestionnaire onload de la balise <body> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onLoad="javascript:<FORM> <INPUT TYPE='button' VALUE='Boton' OnClick='loadpage()'> </FORM>">

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Merci les gars je vais prendre note et revoir ma copie.
    Desole pour la redaction sur le forum je suis autant novice ici qu en javascript
    ...loves you.....

  5. #5
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    You're welcome. Car comme dit le proverbe :
    Citation Envoyé par le proverbe qui dit des trucs
    C'est en forgeant qu'on devient forgeron
    Et c'est en lisant qu'on devient liseron

    [et c'est en se mouchant qu'on devient moucheron]

  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par Herode
    J'ajouterai que document.write écrit dans le flux à l'endroit où il est invoqué. Dans le cas présent, ça revient à ajouter une <form> à l'intérieur du gestionnaire onload de la balise <body> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onLoad="javascript:<FORM> <INPUT TYPE='button' VALUE='Boton' OnClick='loadpage()'> </FORM>">
    Dans le cas présant, je ne crois pas que cela ce produise comme ca
    Il ne s'agit pas d'une écriture dans le flux mais d'une écriture hors-flux (au momment de la gestion de l'évenement onload). Dans ce cas, la fonction réinitialise totalement le document... dans le cas présent, c'est comme si tu avais mis dans ton fichier HTML ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM> <INPUT TYPE='button' VALUE='Boton' OnClick='loadpage()'> </FORM>
    Autrement dit, ta fonction loadpage n'est pas déclarée, il n'y a pas d'element HTML, pas d'element HEAD, pas d'élément BODY, ... pour t'en convaincre essaie de mettre ceci en onload de la balise body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.write("Ce message s'affiche-t-il ?");alert(document.body.innerHTML);
    C'est pour cette raison que son utilisation est fortement déconseillée, elle n'a pas un effet constant, tout dépand du momment ou elle est executée.... si entre <body> et </body> tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("document.write('Hello Asynchrone')",0)
    , la méthode est exécutée hors flux, et détruit donc le document en cours.... seulement tout cela est à la gestion du navigateur, qui ne manque jamais d'ingéniosité quand il s'agit de faire défférement des autres navigateurs
    Je déconseille aussi la méthode document.body.innerHTML += car elle détruit les liens des objets... exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var Button1 = document.createElement("button")
    Button1.innerHTML="Cliquer ici"
    document.body.appendChild(Button1)
    document.body.innerHTML+="<br /> Ce texte est après le boutton... Tout semble ok point de vue visuel"
    Button1.onclick=function () {
       alert("Ce message n'aparaitra pas car Button1 n'a plus une référence au Button 'visuel'")
    }
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

Discussions similaires

  1. [Math]Problème troncage ou arrondi sur des valeurs
    Par Carrel dans le forum Général Java
    Réponses: 6
    Dernier message: 07/10/2009, 15h11
  2. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  3. Détruire un bouton sur son OnClick
    Par Volfoni dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/06/2006, 12h00
  4. [Kylix] probleme (LINKER ERROR)
    Par subzero82 dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2004, 19h28
  5. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo