règles de mise à la ligne

Le
Une Bévue
je ne me souviens plus du tout des règles de mise à la ligne pour js
par exemple j'ai écrit :
var footer_right=document.getElementById('footer_right');
var button="<a class='button' href='javascript:void(0)' ";
button+="onclick='"+button_function+";return false'><span ";
button+="id='"+button_id+"'>"+button_label+"</span></a>";
footer_right.innerHTML+=button;

parce que je me suis rendu compte qu'on ne pouvait pas écrire :
var footer_right=document.getElementById('footer_right');
footer_right.innerHTML+="<a class='button' href='javascript:void(0)' ";
footer_right.innerHTML+="onclick='"+button_function+";return
false'><span ";
footer_right.innerHTML+="id='"+button_id+"'>"+button_label+"</span></a>";

car alors le "html" est mal interprété par le navigateur, Chrome sous
Ubuntu, les < sont transformés en &lt; et le balisage disparaît.
J'en ai conclu que pour faire un #innerHTML+= il faut que le membre de
droite soit "balancé", c'est une chose.

donc tout au dessus, pour la variable "button" est-ce que j'aurais pu
n'écrire qu'une seule commande mais sur plusieurs lignes comme par exemple :

var button="<a class='button' href='javascript:void(0)' " +
"onclick='"+button_function+";return false'><span " +
"id='"+button_id+"'>"+button_label+"</span></a>";

je sais qu'on ne peut pas écrire, comme en php :

var button="<a class='button' href='javascript:void(0)'
onclick='"+button_function+";return false'><span
id='"+button_id+"'>"+button_label+"</span></a>";
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bol
Le #23732131
je ne me souviens plus du tout des règles de mise à la ligne



Comme tu le dis toi même, le retour à la ligne dans le source
n'est pas inclus comme en PHP dans une string, et plante l'interpretation

var button="<a class='button' href='javascript:void(0)' " +
"onclick='"+button_function+";return false'><span " +
"id='"+button_id+"'>"+button_label+"</span></a>";



pourquoi des + inutiles ?

A+
Bol
Bol
Le #23732121
var footer_right=document.getElementById('footer_right');
footer_right.innerHTML+="<a class='button' href='javascript:void(0)' ";
footer_right.innerHTML+="onclick='"+button_function+";return



a chaque innetHTML += il va essayer d'interpreter le HTML
et donc forcement il n'attend pas que tu es fini ton dernier +
meme question pourquoi ne pas mettre une seule ligne ?

A+
Bol
Matt...
Le #23732381
Bonjour,

Le Tue, 06 Sep 2011 07:01:11 +0200, Une Bévue a écrit:

je ne me souviens plus du tout des règles de mise à la ligne pour js...
par exemple j'ai écrit :
var footer_right=document.getElementById('footer_right');
var button="<a class='button' href='javascript:void(0)' ";
button+="onclick='"+button_function+";return false'><span ";
button+="id='"+button_id+"'>"+button_label+"</span></a>";
footer_right.innerHTML+=button;





Et comme ceci :

var button = document.createElement("a");
button.className = "button";
button.setAttribute("href", "javascript:void(0)");
button.addEventListener("click", button_function);
footer_right.appendChild(button);

etc...

Marche sur Opéra et Firefox. Sur IE, les addEventListener n'ont pa s les
mêmes types d'évènements, il me semble.

matt...

--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/
Une Bévue
Le #23732471
On 06/09/2011 10:08, Bol wrote:
a chaque innetHTML += il va essayer d'interpreter le HTML
et donc forcement il n'attend pas que tu es fini ton dernier +


oui, ça j'avais compris.

meme question pourquoi ne pas mettre une seule ligne ?



pour lire plus facilement le code, si la ligne est trop longue,
l'éditeur de texte ne permet pas de tout voir, il faut scroller ???
Une Bévue
Le #23732461
On 06/09/2011 10:04, Bol wrote:
pourquoi des + inutiles ?



euh, je me suis peut-être trompé, car en essayant directement (comme
en php) :

var button="<a class='button' href='javascript:void(0)'
button+="onclick='"+button_function+";return false'><span
button+="id='"+button_id+"'>"+button_label+"</span></a>";


j'ai eu une erreur, mais bon, elle venait peut-être d'ailleurs ???

si je comprends bien ta remarque, on peut écrire sur plusieurs lignes
comme ci-dessus ?
Une Bévue
Le #23732451
On 06/09/2011 11:04, Matt... wrote:


Et comme ceci :

var button = document.createElement("a");
button.className = "button";
button.setAttribute("href", "javascript:void(0)");
button.addEventListener("click", button_function);
footer_right.appendChild(button);




parce que la pluspart du html ajouté l'est par php où je dois bien
utiliser #innerHTML,

etc...

Marche sur Opéra et Firefox. Sur IE, les addEventListener n'ont pas
les mêmes types d'évènements, il me semble.



pas grave je me fiche de ie que je n'utilise pas.
Bol
Le #23732691
pour lire plus facilement le code, si la ligne est trop longue, l'éditeur
de texte ne permet pas de tout voir, il faut scroller ???



Donc pour mieux lire le code, tu programmes
plein de concatenation inutiles ?

Il y a aussi la solution d'avoir un ecran plus grand ;-)

A+
Bol
Bol
Le #23732771
pourquoi des + inutiles ?



si je comprends bien ta remarque, on peut écrire sur plusieurs lignes
comme ci-dessus ?



Non, je suggerais de faire les retours la ou il y a deja des +
et de ne pas mettre de + dans une string juste pour la lecture du code

var button="<a class='button' href='javascript:void(0)' " +
"onclick='"+button_function+";return false'><span " +
"id='"+button_id+"'>"+button_label+"</span></a>";



var button="<a class='button' href='javascript:void(0)' onclick='"
+ button_function + ";return false'><span "
+ "id='"+button_id + "'>" + button_label + "</span></a>";

A+
Bol
Pascal Poncet
Le #23732801
Bonjour,

Le 06/09/2011 12:35, Bol a écrit :
var button="<a class='button' href='javascript:void(0)' onclick='"
+ button_function + ";return false'><span "
+ "id='"+button_id + "'>" + button_label +"</span></a>";



Attention à cette notation, elle est permise par beaucoup
d'implémentations de JS (peut-être même toutes aujourd'hui) mais n'est
pas conforme à ECMAScript.
Cette norme prévoit que le point-virgule reste facultatif et que, de ce
fait, chaque ligne qui pourrait être normalement interprétée soit
considérée comme terminée.
Or c'est bien le cas de la première ligne !

Bon, le comportement actuel des navigateurs ne devrait pas changer, mais
cela reste imprudent, à mon avis.

--
Cordialement,
Pascal
Pascal Poncet
Le #23732791
Bonjour,

Le 06/09/2011 11:22, Une Bévue a écrit :
On 06/09/2011 11:04, Matt... wrote:
var button = document.createElement("a");
button.className = "button";
button.setAttribute("href", "javascript:void(0)");
button.addEventListener("click", button_function);
footer_right.appendChild(button);





Tout à fait d'accord avec Matt !

parce que la pluspart du html ajouté l'est par php où je dois bien
utiliser #innerHTML,



Je ne vois pas trop le rapport, excuses-moi.
Qu'est-ce qui empêche PHP de générer le code ci-dessus ?
Voire seulement la portion nécessaire aux changements ?

Marche sur Opéra et Firefox. Sur IE, les addEventListener n'ont pas
les mêmes types d'évènements, il me semble.



pas grave je me fiche de ie que je n'utilise pas.



Remarque que, si tu n'a pas besoin de déclencher plusieurs gestionnaires
sur le même événement, tu peux toujours utiliser la manière classique
d'enregistrer les événements.

<script>
button.onclick = button_function;
</script>

--
Cordialement,
Pascal
Publicité
Poster une réponse
Anonyme