Откройте флэш-диаграмму на IE 8
-
04-10-2019 - |
Вопрос
Я использую открытую флэш-диаграмму 2 для представления графиков и диаграмм на моем сайте. Я пытаюсь загрузить данные JSON для диаграммы с одной и той же страницы. Есть несколько способов сделать это.
- Используйте свойство Get-Data из таблицы и передайте метод JavaScript, который возвращает JSON
- Используйте метод Open_FLASH_CHART_DATA, который знает диаграмму Flash для чтения данных из
Все, кажется, работают нормально на Firefox, Chrome и т. Д. Единственный браузер, который имеет проблему, то есть (я использую IE 8)
Немного выглядящим в открытом источнике, я обнаружил, что библиотека использует exetrnalinteriferface для выполнения метода JavaScript, и отличается экземпляром ExternalInterface, оно возвращается NULL для любого выполнения метода в IE.
Похоже, что этот вопрос уже известен сообществом разработчиков Flash, поэтому я пробовал несколько вещей (хотя есть некоторые решения, которые я не мог использовать в библиотеке - например уникальный идентификатор для элемента вставки. Библиотека генерирует ее)
В заключение, я, наверное, упущен простое решение для моей проблемы.
Мой код:
Это jQuery Call на открытую флэш-диаграмму от JavaScript:
$('#myDiv').flash
(
{
src: ofc_swf,
width: "400",
height: "250",
allowscriptaccess: "always",
wmode: "transparent",
flashvars: {"get-data": "getFlashJson"}
},
{
version: 8
}
);
И это метод JavaScript, который вернет источник JSON из таблицы:
function getFlashJson()
{
var val = $("#myJson").val();
return val;
}
Я буду признателен за любую помощь по этому поводу.
Спасибо
Решение
Попробуйте обновить swfobject.js: Для меня версия 2.2 решила свои проблемы.
Другие советы
У меня была эта проблема и нашла решение.
Удалите части флэш-кода в файле PHP, который предисловит идентификатор фильма с ie_
А также изменить код SWFObject JavaScript к этому:
function findSWF(movieName) {
if (navigator.appName.indexOf("Microsoft")!= -1) {
return window[movieName];
} else {
return document[movieName];
}
}