FF ne veut pas de mon "getElementById().innerText" [JS] - HTML/CSS - Programmation
Marsh Posté le 24-07-2006 à 16:39:21
innerText inconnu de FF, faut utiliser textContent...
Le seul truc commun aux deux, dans ce gout là, c'est innerHTML
Marsh Posté le 24-07-2006 à 16:41:42
innerHTML y'a des majuscules ?
arf, c'est pour ça que ça marchait pas
dans tous les cas, j'ai trouvé une parade (plus efficace)
=> le champ hidden "close", il est juste là pour vérifier que le js dois bien se lancer. (rechargement d'une page, et c'est au rechargement que le champ apparaît)
du coup je l'ai remplacé par "fileName" et je récupère son "value". C'est plus propre, et du coup j'ai pu outre-passer le innerText
Mais bon, je garde dans ma tête le coup du innerHTML en majuscule m'en souvenais plus du tout !
Marsh Posté le 24-07-2006 à 17:35:43
Arjuna a écrit : |
J'ai eu le même problème ya quelques semaines, j'avais oublié les majuscules.
Marsh Posté le 25-07-2006 à 01:15:34
Sinon ta quintuple imbrication de IF et de for me semble très très très pourrie.
Pourrait-on voir ton formulaire, et savoir ce que tu cheches à faire très exactement. Car je suis sur qu'on peut réduire ton bouzin à 5 malheureuses lignes bien plus lisibles.
Merci
Marsh Posté le 25-07-2006 à 01:44:08
+1 avec le dessus
Pour commencer, en JS une node absente fait habituellement quitter la fonction directement donc le premier if devient
Code :
|
Le second FOR imbriqué est totalement inutile: un simple lookup classique sur une node HTML renvoie la valeur de l'attribut demandé, j'ai du mal à voir l'intérêt de passer par un for complet et 3 étages de tests. Sans parler de l'appel à répétition à getElementsByTagName, c'est pas un langage compilé le JS c'est un langage interprété hein, il va aller fetcher toutes ses nodes à chaque fois et taper tous ses lookups systématiquement
On se retrouve donc avec
Code :
|
Mais bon personnellement dans la mesure où j'aime pas dépasser 2 ou 3 niveaux d'imbrication quand je peux éviter, j'écrirais plutôt:
Code :
|
Marsh Posté le 25-07-2006 à 08:41:40
Si je puis me permettre
Code :
|
Je crois qu'il manquait un petit return
Marsh Posté le 25-07-2006 à 10:03:15
gatsu35 a écrit : Pourrait-on voir ton formulaire, et savoir ce que tu cheches à faire très exactement. Car je suis sur qu'on peut réduire ton bouzin à 5 malheureuses lignes bien plus lisibles. |
Ouais, c'est sûr que c'est largement améliorable...
A la base, j'ai une page qui contient un formulaire avec des textarea.
Là, j'ai un autre script de la mort (sisicaivrai) qui fait apparaître un bouton selon la valeur choisir dans une selectbox qui est associée à chaque textarea.
Ensuite, lors du click sur le bouton, je récupère le "name" du textarea associé que je passe en querystring à une popup.
Dans cette popup, j'ai ce script.
Au départ, le input "pictName" n'existe pas.
J'ai un formulaire d'upload de fichier.
=> Lorsque l'upload est fini, et que le serveur a vérifié la conformité du fichier et tout ça, ce champ se crée ou non.
=> Dans "window.onunload" j'execute le script ci-dessus.
Il a pour effet d'aller chercher dans le opener le champ textarea correspondant au bouton qu'on avait cliqué, en recopiant dedans le nom du fichier uploadé.
C'est un peu le bordel, je te l'accorde, mais c'est pas fini (à la base, cette popup donnera le choix entre uploader une nouvelle image, ou en choisir une déjà uploadée)
Pour voir plus en détail : http://magicsite.manga-torii.com
Va dans la section article et affiche un article.
Ensuite (et seulement ensuite, sinon t'es coincé, faut que je change le truc ) tu t'identifies :
Login/Pass : guest/guest
Section "article".
Tu choisis "Picture" comme type de paragraphe.
=> Le bouton apparaît (si c'est déjà une image, il faut choisir autrechose puis prendre pricture, c'est relou mais c'est pas fini)
=> Et là tu verras de quoi je cause
Marsh Posté le 25-07-2006 à 10:39:37
gatsu35 a écrit :
|
oups
Marsh Posté le 25-07-2006 à 10:44:53
Chez moi c'est tout buggé
Marsh Posté le 25-07-2006 à 10:55:05
masklinn a écrit : Chez moi c'est tout buggé |
utilise FF ou IE7
j'ai pas testé avec IE6 et ça merde sur cette version (soucis avec les CSS principalement)
Marsh Posté le 25-07-2006 à 11:01:32
J'utilise toujours Firefox 1.5 hein, j'ai autre chose à foutre que tourner sous IE6
Marsh Posté le 25-07-2006 à 11:02:52
ben comment tu fais ton compte ?
qu'est-ce qui déconne ???
-- je viens de tout re-tester, et je ne vois pas ce qui déconne avec FF --
Marsh Posté le 25-07-2006 à 11:25:39
En tout cas, la beta 2 de IE7 ne supporte pas Filter :
Code :
|
=> Marche sous FF, mais pas sous IE7
Marsh Posté le 25-07-2006 à 11:28:24
Ceci dit, ça ne révolutionne pas le monde non plus.
On peut très bien s'en sortir sans
Code :
|
Marsh Posté le 25-07-2006 à 11:47:40
Nan mais je sais faire autrement, c'est juste dommage que malgré la version IE7, il y ait toujours des différences avec FF!!!
D'ailleurs ton code il est tout beurk
En version propre, ça donne ça:
Code :
|
mais bon ça sent le détournement de topic
Marsh Posté le 25-07-2006 à 12:25:26
anapajari a écrit : Note: En js1.6 il existe une méthode "filter" sur l'objet Array( la doc) qui fait exactement la même chose ... |
IE7 ne supporte rien de plus que IE6 en termes de JS (sauf qu'il a un objet xmlHttpRequest natif au lieu d'un activex à la con)
Donc ni le JS 1.6 de Firefox 1.5, ni le JS 1.7 supporté par FF 2.0 (avec les blocs let, les générateurs, les itérateurs,... )
Et accessoirement avoir mis la fonction en premier à la Python je trouve ça naze, contrairement à Python le JS a des fonctions anonymes complètes, donc il est beaucoup plus logique et pratique de foutre la fonction de filtrage derrière
Marsh Posté le 25-07-2006 à 13:40:07
masklinn a écrit : IE7 ne supporte rien de plus que IE6 en termes de JS (sauf qu'il a un objet xmlHttpRequest natif au lieu d'un activex à la con) |
c'est ballot
masklinn a écrit : Et accessoirement avoir mis la fonction en premier à la Python je trouve ça naze, contrairement à Python le JS a des fonctions anonymes complètes, donc il est beaucoup plus logique et pratique de foutre la fonction de filtrage derrière |
Suis d'accord mais ça dépend si tu as besoin plus tard de la même fonction ... Et puis tout en une ligne ça fait un peu violent à mon gout:
Code :
|
Marsh Posté le 25-07-2006 à 14:05:43
anapajari a écrit : c'est ballot
|
Ptin mais tu mets pas tout sur une ligne
Tu fais ça comme les blocks en Ruby
Code :
|
Problème: c'est laid et peu lisible, alors que si on pouvait mettre la fonction en dernier (comme les blocks en ruby quoi ) ça donne
Code :
|
Et voila, c'est beaucoup plus lisible, c'est clair et c'est compact
Arjuna a écrit : des ' en js |
Marsh Posté le 25-07-2006 à 14:30:11
masklinn a écrit : Ptin mais tu mets pas tout sur une ligne
|
+1
masklinn a écrit : alors que si on pouvait mettre la fonction en dernier (comme les blocks en ruby quoi ) ça donne
|
Tu fais très bien te debrouiller pour faire comme ça... Suffit de changer:
Code :
|
en
Code :
|
Mais juste pour rendre lisible l'appel je trouve ça dégueu ...
Bref, ça reste vraiment juste des habitudes personelles
Marsh Posté le 25-07-2006 à 14:34:33
ReplyMarsh Posté le 25-07-2006 à 15:08:21
anapajari a écrit : +1
|
Ouais sauf qu'avec le builtin JS1.6 ça marche pas, parce qu'il a été défini en (f, arr) à la Python au lieu d'être défini en (arr, f) à la Ruby, c'est de ça que je parlais moi à la base
Arjuna a écrit : les simples quotes en js c'est laid beurk.² |
Ok lol
Marsh Posté le 25-07-2006 à 15:14:34
/me vous rappelle qu'on parle de JS, donc ni de ruby ni de phyton...
regardez le framework de java pour savoir où ils mettent lescallback dans leurs appels, et la discussion sera close
Marsh Posté le 25-07-2006 à 15:16:33
Arjuna a écrit : /me vous rappelle qu'on parle de JS, donc ni de ruby ni de phyton... |
Ah ouais c'est vrai, on ne fait que comparer des langages typés dynamiquement gérant les fonctions en tant qu'objets
Sur une fitioure tirée directement de Python en bonus (de même que 70% des trucs de JS1.7]
Arjuna a écrit : regardez le framework de java pour savoir où ils mettent lescallback dans leurs appels, et la discution sera close ) |
On s'en branle, il n'y a strictement aucun rapport entre Java et le JS
Marsh Posté le 25-07-2006 à 15:17:21
masklinn a écrit : On s'en branle, il n'y a strictement aucun rapport entre Java et le JS |
plus qu'avec phyton et ruby en tout cas
Marsh Posté le 25-07-2006 à 15:24:20
Arjuna a écrit : plus qu'avec phyton et ruby en tout cas |
J'pense que t'as pris trop de drogue ce matin, tu devrais aller te coucher
Marsh Posté le 25-07-2006 à 15:25:05
masklinn a écrit : Ouais sauf qu'avec le builtin JS1.6 ça marche pas, parce qu'il a été défini en (f, arr) à la Python au lieu d'être défini en (arr, f) à la Ruby, c'est de ça que je parlais moi à la base |
mais c'est bien ce que je te dis ... tu fais dégueulasse à un endroit pour faire propre à l'autre!!! Bon s'pas grave hein
Arjuna a écrit : plus qu'avec phyton et ruby en tout cas |
Les 4 premières lettres ???
Masklinn> c'est ta journée non?
Marsh Posté le 25-07-2006 à 15:28:09
ReplyMarsh Posté le 25-07-2006 à 15:46:34
Arjuna a écrit : Masklinn > t'as le droit de rester courtois aussi |
Je suis très courtois, c'est pas de ma faute si tu racontes des stupidités pareilles
Marsh Posté le 25-07-2006 à 16:23:06
Soyez gentil avec Magic... Arjuna, sinon, je mords.
Ya assez de boulets à fighter hein. Si on commence à tirer sur les gens compétents et passionnés...
Marsh Posté le 25-07-2006 à 16:50:57
masklinn a écrit : Je suis très courtois, c'est pas de ma faute si tu racontes des stupidités pareilles |
Dire que JavaScript, c'est ni du Python, ni du Ruby, c'est des stupidités d'après toi ?
Qu'est-ce qu'il faut pas entendre...
Marsh Posté le 25-07-2006 à 18:38:01
Arjuna a écrit : Dire que JavaScript, c'est ni du Python, ni du Ruby, c'est des stupidités d'après toi ? |
Dire que le JS a plus de points en commun avec le Java qu'avec Python ou Ruby (ce qui est très exactement ce que tu as dit) est d'une stupidité sans nom
Mais bon c'est pas grave, apparement tu ne connais ni le JS, ni Python, ni Ruby, donc je présume que ça peut être excusé
Marsh Posté le 25-07-2006 à 19:27:22
masklinn a écrit : Dire que le JS a plus de points en commun avec le Java qu'avec Python ou Ruby (ce qui est très exactement ce que tu as dit) est d'une stupidité sans nom |
Je veux pas dire, mais franchement tu exagères carément là... ça fait un sacré bout de temps qu'il est sur le forum, il montre régulièrement ce qu'il produit (à la différence de bcp d'autres...) et c'est toujours intéressant, voire novateur (je pense en particulier à son truc pour chercher automatiquement un nom à partir des premières lettres dans un faux sélect...) Je pense aussi à tout ce qu'il expérimente en permanence, à son évolution permanente... (il est passé d'un point de vue anti-norme à un CMS en XHTML/XML/XLS...)
Faire une erreur (dans le cas où celle-ci est avérée) ne signifie pas pour autant qu'il est nul, qu'il ne connait pas le JS alors qu'il a depuis longtemps prouvé le contraire et de quoi il est capable, encore une fois à la différence de bcp d'autres ici. D'ailleurs quand on regarde un peu, le forum se divise en deux catégories, ceux qui n'ont pas peur de montrer ce qu'ils font et postent régulièrement leurs recherches/création et les autres, et comme par hasard, ce sont souvent ceux qui postent le moins de truc qui sont les plus critiques. Voire pour s'en convaincre les posts de Stiffler qui ne servent à rien à part lécher les couilles de certains et descendre des mecs qui sont dans le métier depuis des années, alors que lui-même pose une question de newb quelques mois plus tôt sur la même techno que le mec qu'il descend... (faut savoir quand même qu'en l'espace de presque deux ans, le Stiffler en question a créé trois topics en tout et pour tout, un record... Par contre, question pollution de milliers de topics, là on atteind sans problème le millier...)
Bref, ya des choses qui méritent d'être dites parfois... Critiquer c'est toujours très bien et ça apporte toujours bcp, mais je sais pas pourquoi, j'aime bien aussi ceux qui s'exposent à la critique de temps à autres...
Marsh Posté le 25-07-2006 à 19:29:41
Hermes le Messager a écrit : Faire une erreur (dans le cas où celle-ci est avérée) ne signifie pas pour autant qu'il est nul, qu'il ne connait pas le JS alors qu'il a depuis longtemps prouvé le contraire et de quoi il est capable |
Désolé hein, mais pour moi le simple fait de dire que le JS est en quoi que ce soit proche du Java est disqualificatif vu à quel point c'est faux
Il y a précisément 2 points communs entre les deux: 4 lettres, et une syntaxe héritée du C. Point barre.
Marsh Posté le 25-07-2006 à 19:31:59
masklinn a écrit : Désolé hein, mais pour moi le simple fait de dire que le JS est en quoi que ce soit proche du Java est disqualificatif vu à quel point c'est faux |
Ouai, ben même si c'est faux ou si c'est une énormité et tout ce que tu veux, tu fais une petite recherche sur MagicBuzz depuis 4 ans et sur son nouveau pseudo, et tu regardes un peu ce qu'il fait...
Marsh Posté le 25-07-2006 à 19:46:36
Hermes le Messager a écrit : Ouai, ben même si c'est faux ou si c'est une énormité et tout ce que tu veux, tu fais une petite recherche sur MagicBuzz depuis 4 ans et sur son nouveau pseudo, et tu regardes un peu ce qu'il fait... |
Mais je m'en fous de ça, il peut être très bon en C# ou en VB ou en C++ ou en Caml si ça l'amuse, ça ne changera rien à ce que je pense de ses compétences en JS
C'est comme harko, il est peut-être bon en ASM, bon en C#, bon en DBA, mais c'est une quiche en web, c'est tout
Marsh Posté le 24-07-2006 à 16:21:25
J'ai un div avec un id, et je veux récupérer le texte qui se trouve à l'intérieur...
J'ai tenté innerText, innerHtml et nodeValue... A chaque fois j'ai undefined ou null.
Why ?
=> Là où il y a le alert()
Pourtant, le "getElementById()" retourne bien un "[object HTMLDivElement]"