Open Flash That sur IE 8
-
04-10-2019 - |
Question
J'utilise Open Flash Chart 2 pour présenter des graphiques et des graphiques sur mon site Web. J'essaie de charger les données JSON pour un graphique de la même page. Il existe plusieurs façons de le faire.
- Utilisez la propriété get-data du graphique et passez une méthode JavaScript qui renvoie le JSON
- Utilisez la méthode Open_FLASH_CHART_DATA que le graphique flash sait lire les données à partir de
Tous semblent bien fonctionner sur Firefox, Chrome, etc. Le seul navigateur qui a un problème est IE (j'utilise IE 8)
En regardant un peu dans l'open source, j'ai constaté que la bibliothèque utilise EXETRNALInterface pour exécuter la méthode JavaScript, et en allongant l'ExternalInterface semble être disponible, il renvoie NULL pour toute exécution d'une méthode dans IE.
Il semble que ce problème soit déjà connu pour la communauté Flash Developers, donc j'ai essayé peu de choses (bien qu'il existe des solutions que je ne pouvais pas utiliser dans la bibliothèque - par exemple ID unique pour l'élément intégré. La bibliothèque le génère)
En conclusion, je manque probablement une solution simple pour mon problème.
Mon code:
Ceci est l'appel jQuery sur le graphique flash ouvert de JavaScript:
$('#myDiv').flash
(
{
src: ofc_swf,
width: "400",
height: "250",
allowscriptaccess: "always",
wmode: "transparent",
flashvars: {"get-data": "getFlashJson"}
},
{
version: 8
}
);
Et c'est la méthode JavaScript qui renverra la source JSON du graphique:
function getFlashJson()
{
var val = $("#myJson").val();
return val;
}
J'apprécierai toute aide à ce sujet.
Merci
La solution
Essayez de mettre à jour swfObject.js: Pour moi, la version 2.2 avait résolu mes problèmes.
Autres conseils
J'ai eu ce problème et j'ai trouvé une solution.
Supprimez les parties du code flash dans le fichier PHP qui préface l'ID de film avec ie_
et modifiez également le code javascript swfObject à ceci:
function findSWF(movieName) {
if (navigator.appName.indexOf("Microsoft")!= -1) {
return window[movieName];
} else {
return document[movieName];
}
}