Bonjour,
J'ai du mal à définir un titre explicite alors voilà ce qui se passe (Internet Explorer 11) :
Je dois afficher dans ma page un Pie Chart (un camembert quoi).
Voilà le code (j'essaie actuellement de le dessiner toutes les 2s en cas d'échec pour essayer de comprendre) :
Problème 1) : au 1er chargement de ma page, ça marche car mon élément est de type HTMLCanvasElement mais si je lance une nouvelle recherche (qui passe par mon action et recharge la jsp), là l'histoire est différente puisque mon élément devient de type DispHTMLUnknownElement et du coup L’objet ne gère pas la propriété ou la méthode « getContext »
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 window.onload = function() { setInterval("tryToDrawPie()", 2000); }; var isDrawn = 0; function tryToDrawPie() { if (isDrawn == 0) { var element = document.getElementById('chart-area_myChartName'); if (element instanceof HTMLCanvasElement) { var ctx_myChartName = element.getContext('2d'); drawPie(ctx_myChartName); } } } function drawPie(context) { window.myPie_myChartName = new Chart(context, config_myChartName); isDrawn = 1; }
problème2) : toujours à ce 2e chargement, même en évitant l'erreur avec mon test "instoceof", mon timer s'arrête donc il n'y a plus d'autres tentatives (des fois que ça soit un problème de timing pour que tout soit chargé).
Sinon sur les forums j'ai vu des gens faire G_vmlCanvasManager.initElement(element); mais je sais pas ce que c'est G_vmlCanvasManager en tous cas c'est pas connu chez moi.
Pour résumer : tout est en place pour que ça marche mais ça ne marche qu'au premier chargement complet (Ctrl + F5 nécessaire).
Merci de votre aide.
Partager