Флот и Internet Explorer 9?

Я только собираюсь выбрать библиотеку диаграмм для своего приложения ASP.NET.

Я положил глаз на flot, который также используется в stackru. Когда я иду на примеры с флотом, здесь: http://people.iola.dk/olau/flot/examples/

Они выглядят великолепно. Но не в IE9. Я не вижу ничего в IE9. Если я переведу свой IE9 в режим IE8 или IE7, он будет работать. Если я пойду на страницу пользователя здесь на SO

Jon Skeet

это работает также в 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 прерван. Итак, очистите синтаксис массива от нечетной закрывающей запятой!

Другие вопросы по тегам