[variable]document.getelementbyid(id).myStyleVar;

Résolu
cs_TAFT Messages postés 4 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 11 juillet 2007 - 10 juil. 2007 à 20:10
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 11 juil. 2007 à 14:27
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 juil. 2007 à 14:27
>>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 />
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 juil. 2007 à 06:30
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 />
0
cs_TAFT Messages postés 4 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 11 juillet 2007
11 juil. 2007 à 10:43
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!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 juil. 2007 à 11:03
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 />
0

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

Posez votre question
cs_TAFT Messages postés 4 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 11 juillet 2007
11 juil. 2007 à 12:45
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 ?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 juil. 2007 à 13:33
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 />
0
cs_TAFT Messages postés 4 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 11 juillet 2007
11 juil. 2007 à 14:12
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?
0
Rejoignez-nous