Bonsoir, c'est mon premier message dans le forum javascript ! Je rencontre une difficulté, si quelqu'un pouvait m'éclairer, voici ce que je fais :
J'ai une page qui crée dynamiquement des iframes avec javascript (dans un onload).
Chaque frame a un id.
J'aimerais être capable de récupérer l'id de la frame qui reçoit le focus.
Voici une partie du code, simplifiée :
Voilà donc j'ai des iframe : frame0 frame1 frame2 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // fonction lancée lorsqu'une frame prend le focus. function bam() { // essayer de faire un alert du id de la iframe qui a provoqué l'appel à bam } // fonction lancée dès le chargement de la page. function init() { for(id=0 ; id<nbFields ; id++) { var frame=document.getElementById("frame"+id); frame.contentDocument.designMode='On'; frame.contentDocument.addEventListener('focus',bam,false); } }
Et je veux que lorsqu'on donne le focus à frame24 par exemple, que la fonction bam sache que c'est frame24 qui a appelé.
Les solutions qui ne marchent pas :
- Le principal problème est que l'on ne peut pas passer de paramètre dans le addEventListener, sinon ce serait du gateau de lancer bam(id).
- J'ai entendu parler de window.frameElement.id mais je ne sais pas comment accéder à celà, car dans bam, le this pointe sur un HTMLDocument. Je ne parviens pas à accéder au window ... Je ne comprend pas trop sur quoi pointe ce this, je ne sais rien en faire
En dernier recours, je pourrais créer une fonction bam par iframe, par exemple bam0 pour frame0 etc ... mais c'est pas du propre je trouve.
Merci d'avance pour vos éclaircissements, j'ai beaucoup cherché, il est temps de dormir ...
Partager