Bonjour,
Auriez-vous une solution pour que Object.prototype.foo ou Element.prototype.foo fonctionne sous IE ?
Merci.
Bonjour,
Auriez-vous une solution pour que Object.prototype.foo ou Element.prototype.foo fonctionne sous IE ?
Merci.
une fonction ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <script type="text/javascript"> var foo=function(obj){ obj.style.position="absolute"; obj.style.top="200px"; } </script> </head> <body> <div onclick="foo(this)">dfsdfsd</div> </body>
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Par exemple :
Mais sous IE...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Object|Element.prototype.remove = function() { this.parentNode.removeChild(this); } document.getElementById("myElement").remove();
Sinon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <script type="text/javascript"> function remove(obj){ obj.parentNode.removeChild(obj) } </script> </head> <body> <div onclick="remove(this)">dfsdfsd</div> </body>
http://www.developpez.net/forums/d19...-fonctions-ie/
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Oui merci ; Mais auriez-vous une solution pour écrire ça en objet ?
Comme ceci : sizzle("myElement").html("test").addClass("test")
Je sais qu'il existe jQuery qui est basé sur sizzle mais je n'est pas besoin de toutes les fonctions jQuery, j'ai donc j'essayé de reproduire seules les fonctions nécessaires pour mon projet mais créer ses fonctions directement sur les Object javascript et non pas en utilisant le système de jQuery ou de Prototype.js.
On ne peut appliques de prototype que sur des objets javascript
Là ce sont des objets du DOM ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Solution :
http://delete.me.uk/2004/09/ieproto.html
![]()
Non Spaffy, tu peux très bien prototyper des objets du DOM, mais comme IE n'implémente pas d'objet Element, il faut d'abord le créer avant d'y appliquer des prototypes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Element.prototype.essai = function(){ alert(this.tagName); } document.getElementsByTagName('div')[0].essai();
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Element est indéfini ...
on parle bien de IE ???
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
les élément html dans IE < 8 ne sont pas des objets javascript, donc pas de prototype (meme si dans IE8 non plus)
Sinon il y a deux classes différente des objet DOM en fonction du navigateur, 'est soit Element, soit HTMLElement.
Faut savoir que l'interpréteur js et dom de IE ne communique pas ou très mal, ce qui a pour effet , des fuites de mémoire à cause d'éléments ayant des évènements ou des propriétées javascript. (en faite que lorsque qu'on supprime l'élément, le ramasse miette fonctionne mal, et donc une partie reste en mémoire)
je pense pas que ce soit une bonne solution, d'une la procédure est couteuse en temps, (a chaque création on recopie des propriétés) , de plus, comme je l ai dit, il peux y avoir un problème de fuite de mémoire, même si dans ce cas précis , il ne s'agit que de référence javascript.
Le mieux serait de créer sa propre classe HTML.Element, pour créer des pseudo élément....
je suis en train de faire un framework , qui implémente cette technique., tu pourra peut-etre prendre des idée dessus.
Je l'ai pas posté sur www.developpez.net, car tros volumineux.
Partager