Pregunta

Estoy usando Open Flash Chart 2 para presentar gráficos y gráficos en mi sitio web. Estoy tratando de cargar los datos JSON para un gráfico de la misma página. Hay varias maneras de hacer eso.

  • Use la propiedad Get-Data de la tabla y pase un método JavaScript que devuelva el JSON
  • Use el método OPER_FLASH_CHART_DATA que el gráfico flash sabe leer datos de

Todos parecen funcionar bien en Firefox, Chrome, etc. El único navegador que tiene un problema es, es decir (estoy usando IE 8)

Mirando un poco en el código abierto, descubrí que la biblioteca está utilizando ExetrnalInterface para ejecutar el método JavaScript, y sin embargo, la Interfaz de External parece estar disponible, devuelve NULL para cualquier ejecución de un método en IE.

Parece que este problema ya es conocido para la comunidad de desarrolladores de Flash, por lo que probé algunas cosas (aunque hay algunas soluciones que no podría usar en la biblioteca, por ejemplo, ID única para el elemento de incrustación. La biblioteca lo genera)

En conclusión, probablemente me falta una solución simple para mi problema.

Mi código:

Esta es la llamada jQuery a la tabla de flash abierto de JavaScript:

$('#myDiv').flash
(
    {
        src: ofc_swf,
        width: "400",
        height: "250",
        allowscriptaccess: "always",
        wmode: "transparent",                 
        flashvars: {"get-data": "getFlashJson"}                       
    },
    {
        version: 8
    }
);

Y este es el método JavaScript que devolverá la fuente JSON del gráfico:

function getFlashJson()
{
    var val = $("#myJson").val();
    return val;
}

Agradeceré cualquier ayuda sobre esto.

Gracias

¿Fue útil?

Solución

Intente actualizar swfobject.js: para mí, la versión 2.2 había resuelto mis problemas.

Otros consejos

Tuve este problema y encontré una solución.

Elimine las partes del código flash en el archivo php que prefacio la ID de la película con ie_ y también cambie el código JavaScript SWFObject a esto:

function findSWF(movieName) {
  if (navigator.appName.indexOf("Microsoft")!= -1) {
    return window[movieName];
  } else {
    return document[movieName];
  }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top