j'utilise une petite fonction que j'ai trouvé sur le net qui est la suivante
function fireEvent(obj, event)
{
if (document.createEventObject)
{
var evt = document.createEventObject();
return obj.fireEvent('on'+event,evt)
}
else
{
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true );
return !obj.dispatchEvent(evt);
}
}
l'idée est de pouvoir déclancher un evenement (genre onchange) via un
script.
Je me demande seuleument dans quel ordre se réalisent les appels
supposons que j'ai un champ input
<input id='monchamp' onchange='this.value=0;'>
si j'execute le code suivant
var oMonChamp = /* nom object input */
fireEvent(oMonChamp, 'change');
oMonChamp.value = 1;
suis-je certain d'avoir 1 au final dans mon champ input ?
ou bien y a t-il une chance (un navigateur) qui va pousser l'evenement
sur une pile et éventuellement me déclencher mon onchange après que j'ai
remis 1 dans le champ input ???
voila.
J'ai tester quelques navigateurs et cela semble fonctionner comme je le
souhaite, mais bon une confirmation serait quand meme la bienvenue.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SAM
Le 3/12/10 11:22 AM, WebShaker a écrit :
salut.
j'utilise une petite fonction que j'ai trouvé sur le net qui est la suivante
function fireEvent(obj, event) { if (document.createEventObject) { var evt = document.createEventObject(); return obj.fireEvent('on'+event,evt) } else { var evt = document.createEvent("HTMLEvents"); evt.initEvent(event, true, true ); return !obj.dispatchEvent(evt); } }
l'idée est de pouvoir déclancher un evenement (genre onchange) via un script.
Je me demande seuleument dans quel ordre se réalisent les appels
supposons que j'ai un champ input <input id='monchamp' onchange='this.value=0;'>
si j'execute le code suivant var oMonChamp = /* nom object input */ fireEvent(oMonChamp, 'change'); oMonChamp.value = 1;
suis-je certain d'avoir 1 au final dans mon champ input ? ou bien y a t-il une chance (un navigateur) qui va pousser l'evenement sur une pile et éventuellement me déclencher mon onchange après que j'ai remis 1 dans le champ input ???
voila. J'ai tester quelques navigateurs et cela semble fonctionner comme je le souhaite, mais bon une confirmation serait quand meme la bienvenue.
Je viens d'essayer et ... ce truc ne fait rien dans mon Firefox.3 (rien d'autre que changer le value)
à moins que je n'ai mal copié-collé ?
Ceci dit, je ne comprends pas comment ni pourquoi ça fonctionnerait pour un "onchange" Qu'est-ce qui change ? et quand ? quelle action est requise au changement ? (à quoi sert-ce de déclencher un onchange alors que rien ne change ?)
De ce que j'ai compris ce fireEvent est essentiellement fait pour simuler un clic sur n'importe quel élément de la page (même s'il n'est pas dans un form).
Pour la partie : oMonChamp.value = 1; assurément, qque soit le navigateur, si oMonChamp est un élément de formulaire et s'il supporte l'attribut 'value', cette valeur passera à 1
Pour les actions sur des éléments de formulaires il est bien plus simple d'utiliser les fonctions du JS de nos grand' mères
oMonChamp.onchange = function(){ this.value = 1 }
-- sm
Le 3/12/10 11:22 AM, WebShaker a écrit :
salut.
j'utilise une petite fonction que j'ai trouvé sur le net qui est la
suivante
function fireEvent(obj, event)
{
if (document.createEventObject)
{
var evt = document.createEventObject();
return obj.fireEvent('on'+event,evt)
}
else
{
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true );
return !obj.dispatchEvent(evt);
}
}
l'idée est de pouvoir déclancher un evenement (genre onchange) via un
script.
Je me demande seuleument dans quel ordre se réalisent les appels
supposons que j'ai un champ input
<input id='monchamp' onchange='this.value=0;'>
si j'execute le code suivant
var oMonChamp = /* nom object input */
fireEvent(oMonChamp, 'change');
oMonChamp.value = 1;
suis-je certain d'avoir 1 au final dans mon champ input ?
ou bien y a t-il une chance (un navigateur) qui va pousser l'evenement
sur une pile et éventuellement me déclencher mon onchange après que j'ai
remis 1 dans le champ input ???
voila.
J'ai tester quelques navigateurs et cela semble fonctionner comme je le
souhaite, mais bon une confirmation serait quand meme la bienvenue.
Je viens d'essayer et ... ce truc ne fait rien dans mon Firefox.3
(rien d'autre que changer le value)
à moins que je n'ai mal copié-collé ?
Ceci dit, je ne comprends pas comment ni pourquoi ça fonctionnerait pour
un "onchange"
Qu'est-ce qui change ? et quand ?
quelle action est requise au changement ?
(à quoi sert-ce de déclencher un onchange alors que rien ne change ?)
De ce que j'ai compris ce fireEvent est essentiellement fait pour
simuler un clic sur n'importe quel élément de la page (même s'il n'est
pas dans un form).
Pour la partie :
oMonChamp.value = 1;
assurément, qque soit le navigateur, si oMonChamp est un élément de
formulaire et s'il supporte l'attribut 'value', cette valeur passera à 1
Pour les actions sur des éléments de formulaires il est bien plus simple
d'utiliser les fonctions du JS de nos grand' mères
j'utilise une petite fonction que j'ai trouvé sur le net qui est la suivante
function fireEvent(obj, event) { if (document.createEventObject) { var evt = document.createEventObject(); return obj.fireEvent('on'+event,evt) } else { var evt = document.createEvent("HTMLEvents"); evt.initEvent(event, true, true ); return !obj.dispatchEvent(evt); } }
l'idée est de pouvoir déclancher un evenement (genre onchange) via un script.
Je me demande seuleument dans quel ordre se réalisent les appels
supposons que j'ai un champ input <input id='monchamp' onchange='this.value=0;'>
si j'execute le code suivant var oMonChamp = /* nom object input */ fireEvent(oMonChamp, 'change'); oMonChamp.value = 1;
suis-je certain d'avoir 1 au final dans mon champ input ? ou bien y a t-il une chance (un navigateur) qui va pousser l'evenement sur une pile et éventuellement me déclencher mon onchange après que j'ai remis 1 dans le champ input ???
voila. J'ai tester quelques navigateurs et cela semble fonctionner comme je le souhaite, mais bon une confirmation serait quand meme la bienvenue.
Je viens d'essayer et ... ce truc ne fait rien dans mon Firefox.3 (rien d'autre que changer le value)
à moins que je n'ai mal copié-collé ?
Ceci dit, je ne comprends pas comment ni pourquoi ça fonctionnerait pour un "onchange" Qu'est-ce qui change ? et quand ? quelle action est requise au changement ? (à quoi sert-ce de déclencher un onchange alors que rien ne change ?)
De ce que j'ai compris ce fireEvent est essentiellement fait pour simuler un clic sur n'importe quel élément de la page (même s'il n'est pas dans un form).
Pour la partie : oMonChamp.value = 1; assurément, qque soit le navigateur, si oMonChamp est un élément de formulaire et s'il supporte l'attribut 'value', cette valeur passera à 1
Pour les actions sur des éléments de formulaires il est bien plus simple d'utiliser les fonctions du JS de nos grand' mères