Simulaition du click sur un bouton dans firefox

Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
- - Dernière réponse : _benjy
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
- 2 sept. 2005 à 15:59
Salut à vous ...

Je suis développeur Flash, bon je m'y connais assez en JS, mais pas tt a fait assez apparement

voilà le but de mon truc et de faire un simulation d'un balise input file dans Flash (chose qui n'existe pas pour l'instant)

donc depuis Flash j'appel un fonction JS qui ecrit un layer avec un form et un champ input file

le mm script simule un click sur le bouton du input file pour s'ouvre la fenetre de selection de fichier...

mon script marche tres bien ss IE, mais nada sous FireFox

pas de prob pour créer dynamique le calque, mais le click me pose probleme :(

voici mon code :


var LR = "
";

LR += "<form name="upload" method="post" enctype="multipart/form-data">";

LR += "";

LR += "</form>";

LR += "
";

document.getElementById('browseLayer').style.visibility = "hidden";

var range = document.createRange();

range.setStartBefore(document.body.lastChild);

var docFrag = range.createContextualFragment(LR);

document.body.appendChild(docFrag);

btn = document.getElementById("file");

btn.onchange = function(){


document[FlashName].SetVariable(FlashVarName,
document.upload.file.value);

document.all["browseLayer"].innerHTML='';

document.all["browseLayer"].outerHTML='';

}

btn.click();

ca me crée bien le div, le cache, mais rien apres

quelqu'un aurait t'il un idée pour me régler ce prob ...

merci d'avance ...

++

Flash sans Limites
_Benjy
Afficher la suite 

6 réponses

Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
Bonjour,
dèjà, des "choses" exclusives Internet Explorer :
createRange => remplacer par .selectionStart .selectionEnd..
document.all => remplacer par document.getElementById("id de la zone")

Cordialement. Bul. 
Commenter la réponse de cs_bultez
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
salut bultez

merci pour la réponse, mais ca change rien au probleme ... :(

j'ai donc utilisé selectionStart pour range

et oki pour les getElementById a la place des document.all

mais le prob perciste

qui plus est le seul bout de code qui ne mache pas c'est bien le
CLICK(), car avec mon code précédent, mon layer été bien créer, et
cacher...

donc le prob doit pas venir de là

Flash sans Limites
_Benjy
Commenter la réponse de _benjy
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
on peut voir le nouveau script ?
"car pas de raisons" ( oui, je sais
que c'est agaçant de dire ça, mais
c'est vrai )
Cordialement. Bul. 
Commenter la réponse de cs_bultez
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
oki

donc tu trouvera l'exemple complet là : http://kolapsis.net/kFile/
j'ai laissé affiché le calque pour que l'on puisse cliqué manuellement sur le bouton > et ca marche

le script est là : http://kolapsis.net/kFile/kFile.js

et voilou

merci d'avance

++


Flash sans Limites
_Benjy

ps : merci de penser a accepter la reponse si elle te convient
Commenter la réponse de _benjy
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
j'ai regardé très rapidement le .js
et le .createrange est toujours là.
donc toujours exclusif IE.
Cordialement. Bul. 
Commenter la réponse de cs_bultez
Messages postés
1637
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
0
Merci
je sais bien qu'il est là, mais il marche tres bien .... le claque est bien créer

Flash sans Limites
_Benjy
Commenter la réponse de _benjy