Какие-нибудь альтернативы для плагина JQuery Hilight?
1 ответ
Я отладил исходный код maphilight и обнаружил, что IE8 задыхается при добавлении правила для вновь созданной таблицы стилей. Когда я искал в Google именно эту проблему, я обнаружил сообщение об ошибке на треке OpenLayer. В отчете об ошибке был патч, и я использовал этот патч для плагина maphilight, чтобы исправить это.
Вот что тебе нужно сделать. Откройте jquery.maphilight.js (несжатый источник) и перейдите к строке 63, вы увидите что-то вроде следующего:
document.createStyleSheet().addRule("v\\:*", "behavior: url(#default#VML); antialias: true;"); //IE8 chokes on this line.
document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
Заменить вышеупомянутое следующим:
document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
var style = document.createStyleSheet();
var shapes = ['shape','rect', 'oval', 'circ', 'fill', 'stroke', 'imagedata', 'group','textbox'];
$.each(shapes,
function()
{
style.addRule('v\\:' + this, "behavior: url(#default#VML); antialias:true");
}
);
Теперь он должен работать в IE8. Вот доказательство, посмотрите, как выделен Вайоминг.
Я не уверен, будет ли это работать в IE6 и IE7. Вам придется проверить это самостоятельно. Если это сломается в IE6 и IE7, вам придется устанавливать этот патч только тогда, когда браузер IE8.
Еще раз, спасибо за вышеупомянутый патч оригинальному автору. Я только отладил проблему в плагине maphilight.