Флот и Internet Explorer 9?
Я только собираюсь выбрать библиотеку диаграмм для своего приложения ASP.NET.
Я положил глаз на flot, который также используется в stackru. Когда я иду на примеры с флотом, здесь: http://people.iola.dk/olau/flot/examples/
Они выглядят великолепно. Но не в IE9. Я не вижу ничего в IE9. Если я переведу свой IE9 в режим IE8 или IE7, он будет работать. Если я пойду на страницу пользователя здесь на SO
это работает также в IE9. Что мне не хватает? Есть ли секретный переключатель SupportIE9=true?
Я взглянул на протоис в качестве альтернативы. http://vis.stanford.edu/protovis/ex/
Это отлично смотрится в IE9, но если я вставлю браузер в IE7 или IE8, это снова удручает.
Советы? Как заставить их работать или альтернативу, которая работает кросс-IE-версии? Firefox не является проблемой. Работает со всеми библиотеками:)
4 ответа
Получить последнюю версию flot (в настоящее время 0.8.3).
С версии (0.6) произошли некоторые изменения, которые относятся к IE9, в частности, способ, которым IE6-8 поддерживает холст, - это библиотека excanvas. IE9 теперь поддерживает холст изначально, поэтому включение excanvas должно происходить только в том случае, если у пользователя нет IE9. Конкретное изменение в хранилище Subversion для flot:
http://code.google.com/p/flot/source/detail?r=293
Пример изменения, которое вам нужно сделать, это:
<!--[if IE]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
Становится так:
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
Вы должны дать gRaphael шанс. Отличная производительность, даже в IE, и хорошо показанная. Вот некоторые результаты: https://gist.github.com/275992
Если вы хотите придерживаться той же версии и решить проблему, это должно помочь. http://bugs.endian.com/view.php?id=3813
flot - это нормально в IE9, но IE9 не в порядке с некоторым синтаксисом JavaScript.
Отладка той же самой проблемы, как описано, выявила ошибку с массивом данных, определенным как:
$.plot($("#fig2"), [
{...},
{...},
], options});
IE думает, что в этом массиве 3 члена, поэтому цикл во flot прерван. Итак, очистите синтаксис массива от нечетной закрывающей запятой!