Prototypage sur Document, erreur Internet Explorer

Résolu
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 - 26 oct. 2007 à 13:52
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 27 oct. 2007 à 15:00
Bonjour à vous,
voilà j'avais dans l'idée de mettre en place des méthodes sur l'objet Document ( afin d'optimiser certains de mes traitements ). Je me jette à l'eau et écris 3 méthodes ( ci-jointes ). J'inclus mon script dans un fichier html ( <script language= ... src=.... >)
et je lance Firefox, aucun problème, tout va bien !
Mais hélas, j'ai voulu tester avec ce brave IE ( 7.0 ) et la, v'lan l'erreur : Document est indéfini !!!

Si vous aviez une idée, une solution... Pour le moment, j'ai capituler sur le prototypage de Document, mais je vais persister !!!!

Le code :
/**********************************************/
/*             Prototypage de Document                            */
/**********************************************/

/**
* Ajoute un objet à la collection d'objet
*
* @param _obj
*                Objet à ajouter.
* @return L'index dans la collection d'objet
*/
Document.prototype.register = function (_obj){
    if( this.objects == null){
        this.objects = new Array();
    }
    this.objects.push ( _obj );
    return (this.objects.length -1);
}

/**
* Retourne un objet en fonction de son index.
*
* @param _index
*/
Document.prototype.getRegister = function (_index){
    return this.objects[_index];
}

/**
* Supprime un objet de la collection
*
* @param _index
*/
Document.prototype.unRegister = function (_index){
    this.objects[_index ] = null;
}

Rien d'éxceptionnel !

[o-_-o]

8 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
26 oct. 2007 à 15:18
ça baigne !?!     ;o)      FF ok, IE ko.
tenté plusieurs choses   document au lieu de Document
                                        mis le script derrière
                                        ...
résultat : pareil.       faut donc aller plus loin.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
3
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
26 oct. 2007 à 15:31
ça fait un moment que je me casse la bugne sur ce problème, alors.....
Mais un grand merci à toi !!!!!
En effet, j'ai trouvé youki yah !!!
ci-joint la correction . Ne pas utiliser prototype et utiliser document.:

<html>
    <head>
        <title>Document.prototype don't work with IE ???</title>
                    <script>
            /**********************************************/
            /*             Prototypage de Document                            */
            /**********************************************/
           
            /**
            * Ajoute un objet à la collection d'objet
            *
            * @param _obj
            *                Objet à ajouter.
            * @return L'index dans la collection d'objet
            */
            document.register = function (_obj){
                if( this.objects == null){
                    this.objects = new Array();
                }
                this.objects.push ( _obj );
                return (this.objects.length -1);
            }
           
            /**
            * Retourne un objet en fonction de son index.
            *
            * @param _index
            */
            document.getRegister = function (_index){
                return this.objects[_index];
            }
           
            /**
            * Supprime un objet de la collection
            *
            * @param _index
            */
            document.unRegister = function (_index){
                this.objects[_index ] = null;
            }
           
            /**
            * Fonction de démarage
            */
            var idx;
            function main (){
                idx = document.register("Hello JavaScript ;o)" );
            }
            /**
            * Retourne la valeur stocké dans document.
            */
            function check(){
                alert ( document.getRegister(idx)) ;
            }
        </script>
    </head>
   
           

   
</html>

Mais pourquoi que j'y avais pas pensé avant ???? des fois je me demande
du coup j'accepte ta réponse.
[o-_-o]
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
26 oct. 2007 à 14:21
Bonjour,

>> Pour le moment, j'ai capitulé sur le prototypage de Document, mais je vais persister !!!!
    ça doit pouvoir apporter plein de choses...

    peux-tu nous donner un ch'tit exemple d'utilisation ?
       le plus simple possible !
       je n'arrive à faire fonctionner sur aucun navigateur !
            ( mais je ne suis pas doué !!! )





<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
26 oct. 2007 à 14:29
Mon problème est qu'en fait je l'ai intégrer à une gestion complète de fenêtre...
Je vais faire un petit script rapidos...

et c'est parti...

<html>
    <head>
        <title>Document.prototype don't work with IE ???</title>
        <script>
            /**********************************************/
            /*             Prototypage de Document                            */
            /**********************************************/
           
            /**
            * Ajoute un objet à la collection d'objet
            *
            * @param _obj
            *                Objet à ajouter.
            * @return L'index dans la collection d'objet
            */
            Document.prototype.register = function (_obj){
                if( this.objects == null){
                    this.objects = new Array();
                }
                this.objects.push ( _obj );
                return (this.objects.length -1);
            }
           
            /**
            * Retourne un objet en fonction de son index.
            *
            * @param _index
            */
            Document.prototype.getRegister = function (_index){
                return this.objects[_index];
            }
           
            /**
            * Supprime un objet de la collection
            *
            * @param _index
            */
            Document.prototype.unRegister = function (_index){
                this.objects[_index ] = null;
            }
           
            /**
            * Fonction de démarage
            */
            var idx;
            function main (){
                idx = document.register("Hello JavaScript ;o)" );
            }
            /**
            * Retourne la valeur stocké dans document.
            */
            function check(){
                alert ( document.getRegister(idx)) ;
            }

        </script>
    </head>
   
           
   
</html>

Normalement, lors du click sur le bouton, affiche "hello JavaScript ;o)"
ok sur FF ( 2.0.8)
pok sur IE (7)

[o-_-o]
0

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

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
26 oct. 2007 à 15:45
ben... je s'y suis pour rien.

comme quoi, poser une question et on résoud souvent tout seul !

néanmoins, pas de raisons que prototype ne marche pas,
    mais avec IE pas sur Document, qu'il ne connait pas,
    sur l'object DOM comme dit FirefOx ( alert Document.prototype )

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]




    on ne dit pas néanmoins, mais handicap nasal.     
0
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 1
26 oct. 2007 à 22:06
bultez+++

Signé Sagat
0
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
27 oct. 2007 à 14:49
Je viens après la guerre, mais j'ai peut-être quand même une explication : document est une instance, pas une classe ... Donc utiliser prototype ne correspond à rien, vu qu'on ne fait jamais new document() ...
LocalStone
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
27 oct. 2007 à 15:00
>>Je viens après la guerre,
    pas du tout.


>>document est une instance, pas une classe
    "très bonne remarque", effectivement.
    zobibol utilisait Document   ( non = document ) avec FF,
        inconnu (?) de IE chez qui il faudrait trouver l'équivalent
       [  alert(Document+"\r\n"+document); ]



<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Rejoignez-nous