Domanda

Sto usando Open Flash Chart 2 per presentare grafici e grafici nel mio sito Web. Sto cercando di caricare i dati JSON per un grafico dalla stessa pagina. Esistono diversi modi per farlo.

  • Usa la proprietà get-data del grafico e passa un metodo JavaScript che restituisce JSON
  • Utilizzare il metodo Open_flash_chart_data da cui il grafico flash conosce da leggere i dati

Tutti sembrano funzionare bene su Firefox, Chrome ecc. L'unico browser che ha un problema è IE (sto usando IE 8)

Guardando un po 'in open source ho scoperto che la libreria sta usando ExetrnalInterface per eseguire il metodo JavaScript e, pertanto, l'interfaccia esterna sembra essere disponibile, restituisce nulla per qualsiasi esecuzione di un metodo in IE.

Sembra che questo problema sia già noto per la comunità degli sviluppatori Flash, quindi ho provato alcune cose (anche se ci sono alcune soluzioni che non potrei usare in libreria - ad esempio ID univoco per l'elemento Embed. La libreria lo genera)

In conclusione, probabilmente mi manca una soluzione semplice per il mio problema.

Il mio codice:

Questa è la chiamata jQuery al grafico Open Flash da JavaScript:

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

E questo è il metodo JavaScript che restituirà la fonte JSON del grafico:

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

Apprezzerò qualsiasi aiuto su questo.

Grazie

È stato utile?

Soluzione

Prova ad aggiornare SwfObject.js: Per me, la versione 2.2 aveva risolto i miei problemi.

Altri suggerimenti

Ho avuto questo problema e ho trovato una soluzione.

Rimuovere le parti del codice flash nel file PHP con cui prefigurare l'ID film con ie_ e cambia anche il codice JavaScript SWFObject su questo:

function findSWF(movieName) {
  if (navigator.appName.indexOf("Microsoft")!= -1) {
    return window[movieName];
  } else {
    return document[movieName];
  }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top