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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2003
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    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

  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 : 34
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 532
    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
    - ...

  3. #3
    Membre �m�rite 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
    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 averti
    Inscrit en
    Avril 2003
    Messages
    20
    D�tails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 20
    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

  5. #5
    Membre �m�rite 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
    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 : 34
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 532
    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'")
    }

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