Bonjour à tous,
pour tout un tas de raisons qu'il serait trop long d'expliquer ici, je dois ouvrir une popup du navigateur depuis une application Flex.
Pour cela, j'utilise ExternalInterface.call de la façon suivante:
La variable myscript est un code javascript qui ressemble à ça, les sauts de lignes en moins:
Code : Sélectionner tout - Visualiser dans une fenêtre à part ExternalInterface.call(myscript, '/popup?xxx=yyy...');
... ce qui fonctionne bien
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 function(url) { var l = 286; var t = 160; var w = screen.width-l-250; var h = screen.height-t-115; if (window.showModalDialog) { window.showModalDialog(url,'', 'dialogLeft:'+l+'px;dialogTop:'+t+'px;dialogWidth:'+w+'px;dialogHeight:'+h+'px;resizable:no;status:no;unadorned:yes'); } else { var options = 'width='+w+',height='+h+',left='+l+',top='+t+',directories=no,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,titlebar=no,toolbar=no,modal=yes'; var p = window.open(url, '_blank', options); p.focus(); } }
Là où j'ai un problème, c'est que l'utilisateur garde cette popup ouverte un certain temps, qui dépasse facilement la valeur du "script timeout" définie, et je prend (à la fermeture de la popup) une exception "error 1502: A script has executed for more than 15 seconds".
Ce qui n'est pas marrant, c'est que la stacktrace n'est absolument pas la même à chaque fois (l'erreur remonte d'un peu n'importe où), et un try/catch autour de mon appel n'aide donc pas du tout... et parfois, en fonction de où remonte l'erreur, ça freeze complètement mon appli Flex et/ou fait planter le player Flash...
Comment peut-on faire pour s'affranchir de ce problème?
Merci d'avance!
Partager