porsea
Messages postés3Date d'inscriptionjeudi 11 juin 2009StatutMembreDernière intervention11 juin 2009
-
11 juin 2009 à 13:35
porsea
Messages postés3Date d'inscriptionjeudi 11 juin 2009StatutMembreDernière intervention11 juin 2009
-
11 juin 2009 à 15:17
Bonjour,
j'ai créé un macro pour internet, mais j'aimerais faire en sorte qu'une des case "CONTENT=" ai une variable aléatoire, de sorte qu'à chaque fois que je lance la macro, le contenu soit différent...
J'avais trouvé un script en javascript pour créé une fonction aléatoire :
<script language="javascript">
/*
*/
alphabet = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9");
caracteres = 8;
// Entrez ci-dessus le nombre de caractères composant le mot de passe
var longueur = alphabet.length;
function generate()
{
document.generateur.affichage.value = '';
for(i = 0; i < caracteres; i++)
{
y = Math.floor(Math.random()*2);
x = Math.floor(Math.random()*longueur);
res = alphabet[x];
if(y == 0)
{
res2 = res.toUpperCase();
}
else
{
res2 = res.toLowerCase();
}
document.generateur.affichage.value = document.generateur.affichage.value+res2;
}
}
</script>
<form name="generateur">
</form>
Le problème est qu'il créé la variable dans une case (car c'est un script au départ pour une page web) et moi je voudrais qu'il l'affecte à un contenu "CONTENT=", bien sur si vous connaissez plus simple je suis preneur!!
Merci d'avances de vos réponses, je reste près de mon ordi pour vous donnez plus de précisions!!
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 11 juin 2009 à 13:43
Bonjour,
>>j'ai créé un macro pour internet,
ah bon ? ça existe ça ? sans langage ?
>>
J'avais trouvé un script en javascript
ah... tu causes javascript !
ça tombe bien, on est sur le forum adéquat
en javascript, la fonction "aléatoire" c'est
Math.random() qui<title>SELFHTML: JavaScript / Référence objet / Mat</title> retourne un nombre aléatoire entre 0 et 1.
( un nombre décimal, par
exemple 0.3834417857195922 )
après, de ce résultat, tu en fais ce que tu veux
un petit calcul te permet d'en fixer le mini et le maxi
tu peux t'en servir comme index d'une table.....
porsea
Messages postés3Date d'inscriptionjeudi 11 juin 2009StatutMembreDernière intervention11 juin 2009 11 juin 2009 à 14:30
>>
j'ai créé un macro pour internet,
ah bon ? ça existe ça ? sans langage ?
Je l'ai écris dans le titre mais j'ai oublié de préciser que je l'avais créé avec Imacros...
>>
J'avais trouvé un script en javascript
ah... tu causes javascript !
ça tombe bien, on est sur le forum adéquat
C'est pour ça que je m'y suis adressé
J'essayerais avec random un peu plus tard, si ma fonction ne marche pas... Car le problème, c'est que je ne connais pas le langage javascript... Donc j'improvise un peu avec ce que je trouve...
alphabet = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9");
caracteres = 8;
// Entrez ci-dessus le nombre de caractères composant le mot de passe
var longueur = alphabet.length;
function generate()
{
document.j_username.affichage.value = '';
for(i = 0; i < caracteres; i++)
{
y = Math.floor(Math.random()*2);
x = Math.floor(Math.random()*longueur);
res = alphabet[x];
if(y == 0)
{
res2 = res.toUpperCase();
}
else
{
res2 = res.toLowerCase();
}
document.j_username.affichage.value = document.j_username.affichage.value+res2;
}
}
iimSet ("menu", XXXX );
iimPlay("mamacro.iim");
Et dans mamacro.iim :
CONTENT={{menu}}
Ce qui fait que j'appelle la variable "menu" et ce que j'espérerais avoir c'est mon code XXXX généré par le script plus haut... Donc j'aimerais savoir ce qu'il faudrait mettre à la place de XXXX pour que mon script créé un mot de passe avec les caractères que je lui ai donnés à cet endroit et qui serait renvoyé à ma case CONTENT...
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 11 juin 2009 à 14:38
>>J'essayerais avec random un peu plus tard, si ma fonction ne marche pas.
bah... ta fonction s'en sert !
et utilise le résultat sur un array.
>>iimSet ("menu", XXXX );
et comment on te répond ? c'est quoi iimSet ?
>>ce que j'espérerais avoir c'est mon code XXXX généré par le script plus haut
ben ... renvoie le résultat dans la fonction,
tu en feras ce que tu veux !
au lieu de
document.j_username.affichage.value = document.j_username.affichage.value+res2;
fait return (res2);
et à l'appel :
là où tu veux mettre le résultat, variable, élément.html... = generate();
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 11 juin 2009 à 14:49
je me suis assez mal exprimé !
document.j_username.affichage.value = document.j_username.affichage.value+res2;
ça ajoute des caractères dans .j_username.affichage
ajoute dans une variable et en fin, retorune cette variable
function generate()
{ var res,x,y,ret="";
for( var i = 0; i < caracteres; i++)
{ y = Math.floor(Math.random()*2);
x = Math.floor(Math.random()*longueur);
res = alphabet[x];
if (y == 0)
{ res = res.toUpperCase(); }
else { res2 = res.toLowerCase(); }
ret+=res2;
}
return ret;
}
par exemple ( pas testé ! )
Vous n’avez pas trouvé la réponse que vous recherchez ?
porsea
Messages postés3Date d'inscriptionjeudi 11 juin 2009StatutMembreDernière intervention11 juin 2009 11 juin 2009 à 15:17
Comme je l'ai déjà dit, je m'y connais pas trop, mais en ce qui concerne les fonctions "iimXXX", ce sont des fonctions de macro, exemple (c'est un exemple que le constructeur fournis) :
SI-Run-Test.js :
//imacros-js:showsteps no
// With the imacros-js:showsteps command you can tell iMacros to show or
// not show the Javascript commands during the execution.
// Showing steps is useful for debugging, but adds an artificial delay to each step.
// This command overrides the global settings in the Option Dialog.
// Note that the command is *inside* a comment "//", since it is no
// official Javascript command and is used in the iMacros JS interpreter only.
// There can be only one such command per JS file and it affects the complete file.
VERSION BUILD =200003
TAB T=1
TAB CLOSEALLOTHERS
URL GOTO=http://www.iopus.com/imacros/demo/v6/f1/form.asp TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:TestForm ATTR=NAME:Name CONTENT={{NAME}}
'
'$ indicates the use of text instead of the index# for the select box selection
TAG POS=1 TYPE=SELECT FORM=NAME:TestForm ATTR=NAME:main CONTENT=${{MENU}}
TAG POS=1 TYPE=SELECT FORM=NAME:TestForm ATTR=NAME:drink CONTENT=${{DRINK}}
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=NAME:TestForm ATTR=NAME:C7&&VALUE:ON CONTENT=YES
TAG POS=1 TYPE=SELECT FORM=NAME:TestForm ATTR=NAME:dessert CONTENT=${{DESSERT}}
TAG POS=1 TYPE=INPUT:RADIO FORM=NAME:TestForm ATTR=NAME:Customer CONTENT={{CUSTOMER}}
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:TestForm ATTR=NAME:Reg_code CONTENT={{PASSWORD}}
TAG POS=1 TYPE=TEXTAREA FORM=NAME:TestForm ATTR=NAME:Remarks CONTENT={{REMARKS}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:TestForm ATTR=NAME:SendButton&&VALUE:Click<SP>to<SP>order<SP>now
Ce qui fait qu'en lançant le fichier javascript (le premier) ce qui fait que les variables dans "CONTENT" sont appelés du fichier en javascript par la ligne :
iimSet ("DESSERT", "Fruits");
Et donc remplace dans le deuxième fichier la valeur "DESSERT" par "Fruits"
.
Donc j'avais tenté de faire
:
iimSet ("MENU", "generate();");
Ce qui n'a évidemment pas marché... De même quand je met generate(); dans l'objet "CONTENT ="
Voilà, sachant que les deux écritures ne peuvent cohabiter dans un seul fichier (le fichier javascript ne comprends pas les instruction Imacros et inversement)