[variable]document.getelementbyid(id).myStyleVar; [Résolu]

Signaler
Messages postés
4
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
11 juillet 2007
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à tous !


Voici mon problème:


Je souhaite  rendre un script ultra accessible à ces éditeurs, pour ce
faire, je leur laisse créer des "éléments mémoire".

Je ne sais absolument pas quoi choisir, des fonctions, des tableaux, des
instances d'objets?

Je débute encore dans le code objet...


Voici un exemple de paramètre que je récupèrerais du code rajouté par un
éditeur :

myStyleVar = "color='green'";
très simple à rajouter dans le code quoi!


sauf que ce qui suit pose problème:





document.getElementById(id).style.myStyleVar;






















Si mes souvenir sont bon, j'ai une fois
croisé une technique d'ordre syntaxique

pour faire exécuter la valeur et non la variable. Un truc du genre:

+' "


myStyleVar



" '+

Peut-être que je rentre dans des scénarios complètement loufoques mais
j'aurais aussi aimer faire des trucs du genre:

var contenu = Tdata+'"maVar"'[i];

Si quelqu'un à une solution à mon problème ou un remède à ma connerie...

MERCI!

7 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>C'est plutôt dommage.
    tu n'as probablement pas compris mes explications !
    fait  eval d'un eval dans ce cas     ;-D)))


    quelque soit le langage, une subsitution ça se fait,
       la substitution d'une substitution... faut que tu le fasses.

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

    >>

un script ultra accessible à ces éditeurs
       de quels éditeurs parle-tu ?

    je n'ai absoluement pas compris ce que tu voulais faire.

    si tu pouvais réexpliquer, sans inventer quoi que ce soit coté syntaxe...
       dis nous simplement, en français pas en pseuso-javascript , ce que tu cherches à faire...







<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
4
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
11 juillet 2007

Bon, on va splitter mon problème de CONCATENATION:

1.Comment concaténer une ligne de mise en forme Javascript/CSS?

en partant d'une entrée de paramètre de (type string) aussi simple que de celle-ci :


>

structure/variable_à_définir
"backgroundPosition'right center'";

et de :

> document.getElementById('links').style.

pour finir par exécuter après concaténation ceci :

> document.getElementById('links').style.backgroundPosition="right center";

J'ai essayé en vain:

document.getElementById('links').style.structure/variable_à_définir;

Ma variable est sans doute considérée comme du texte et non comme un paramètre CSS > erreur. Est-il possible de demander une réinterprétation de mon string en tant que code JS? Dois-je scinder mon string en 2 : ...style.styleTypeVar=styleParamVar;

Merci de votre dévouement!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
je vois un peu plus clair...      eval ?

<form name="frm">
   
</form>
<Script    type="Text/JavaScript">
    var tmp="document.frm.txt.style.color='blue'";   // on imagine bien que tout est possible !
    eval(tmp);                                                            
</Script>

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
4
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
11 juillet 2007

Apparement, je suis encore pas assez clair, mais y a du progrès:

En fait, je ne dois pas passer par les objets Document, mais par les noeuds !:
//Lignes de paramètre:
var unkownVar = "color='#FF0000'";
var Tparam = unkownVar.split('=');
>Tparam [0] = 'color'
>Tparam [1] = 'right center'



//Récupération de l'objet à styler

var myNode = document.getElementById('ID').style;  
//Récupération de l'objet à styler
var styleType= Tparam [0];
var styleTypeValue=Tparam [1];
//Application du style
myNode[styleType] =styleTypeValue;




CQFD N°1 ! (et en plus c'est classe...)




________________________________________________________








Concaténation d' appels de tableaux "aléatoires" de nom?

Impossible d'afficher le résultat d'éxécution du code "type string"...


 var tempObj=EVAL("style_s[1]"); 
 alert("EVAL of 'style_s[1]' = "+tempObj);





Comment faire pour afficher le contenu de la cellule n°1? je sèche vraiment là!
Y a un STRINGEVAL ?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
je comprend rien...
    eval c'est ce que tu appelles un stringeval !!!!
    dans ce string tu y mets ce que tu veux, cmme tu veux.
    peut être dans un tableau....

    mais eval("toto[1]") n'interprête pas le contenu de toto[1] bien sûr,
          il interprête toto[1]
   
    var toto=new Array()
    toto[1]="alert('ok');"
    eval("toto[1]")      // ça ne va pas faire grand chose...
    eval(toto[1])          // ça va afficher ok !
   

<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
4
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
11 juillet 2007

Ok...
Donc, il n'y a aucune fonction ou astuce permet d'afficher la valeur exécutée du contenu d'un string comme "toto[1]" ... C'est plutôt dommage.

Je viens de tester dans IE la ligne suivante qui me semble plus claire ainsi pour les novices:

var mycars = new Array(
"Saab",
"Volvo",
"BMW"
)


var mycars=new Array("Saab","Volvo","BMW")

Merci pour ton intervention bultez!
Pour moi, l'affaire est bouclée!

PS: y a pas de bouton d'édition pour les messages?