Bonjour à tous,
J'utilise actuellement un script JS qui me permet de mettre en place des évènements onclick sur les cellules d'un tableau:
1- Je donne un 'signet' à la celulle
2- Sur l'évènement 'oncreate' de la celulle, j'incrémente le signet : categ1-10
3- Mon script : for i = 1 to 10, ajouter l'évènement onclick sur la celulle identifié par categ 1-10
Jusque là, tout va bien.
Problème : mon rapport a plusieurs pages!
- Quand je fais un preview sous BIRT, tout se charge et fonctionne
- Quand j'exécute dans le navigateur, le script est sur la dernière page et ne se charge pas tant que je n'ai pas navigué jusque là. Du coup, les trois premières pages n'ont pas l'évènement onclick.
Ma question : savez-vous comment demander à BIRT de charger le script dès qu'il a finit de générer le tableau précédent?
J'ai essayé sur les évènements 'onrender', but nothing.... :-/
La partie qui ajoute les évènements onclick :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 <script type="text/javascript" language="javascript"> function mo(s) { if( IE ){ e=s.srcElement } else { e = s.target; } e.style.cursor="pointer"; } function go(s) { if( IE ) { e=s.srcElement } else { e = s.target; } compteur = parseInt(<VALUE-OF>pro;</VALUE-OF>); var id_clic = e.id; var number=id_clic.substring(5,id_clic.length); oChoix=document.getElementById("prod"+number); if(oChoix.style.display=="none") { for(var j=0; j < compteur; j++) { if(j!=number) { document.getElementById("prod"+j).style.display="none"; } } oChoix.style.display="block"; } else { oChoix.style.display="none"; } }
(je mets en deux fois pour être plus claire)
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
17
18
19
20
21
22
23
24 function addscr() { maxi = parseInt(<VALUE-OF>cpt;</VALUE-OF>); for(var i=0; i < maxi; i++) { str1 = "categ" + i; oDiv = document.getElementById(str1); if (oDiv.addEventListener) { oDiv.addEventListener("click",go, false); oDiv.addEventListener("mouseover",mo, false); } else if (oDiv.attachEvent) { IE=true; oDiv.attachEvent('onclick', go); oDiv.attachEvent('onmouseover', mo); } oTab=document.getElementById("prod"+i); oTab.style.display="none"; } } </script>
Ce code ne vient pas de moi, je l'ai trouvé il y a quelques mois, mais je n'ai malheureusement plus la source (merci à lui en tout cas).
J'ai vraiment besoin de votre aide, merci!
Pour info, le script js est dans un élément texte.
Partager