Как вы можете знать или не знать, Raphaël производит VML для IE6-8 и SVG для всех других браузеров.Однако VML и SVG работают совершенно по-разному.Это очень неадекватно задокументировано в Raphaël.
Проблема, с которой вы столкнулись, связана с тем, что вы добавляете атрибут href к элементам, то есть ptm.attr({'href':'ptm_sp.php?ptm_sp=h3R2ci'});
, что прекрасно работает для SVG, поскольку элементы SVG могутиметь события таким же образом, что и элементы DOM.
Для VML, однако, вам придется прикрепить специфичную к Raphaël функцию click
к объекту и создать внутри нее document.location.href = 'http://URL';
.События Raphaël перечислены здесь , но, пожалуйста, игнорируйте парагаф об использовании вашей любимой библиотеки, так как это неправильно для VML.
Пример кода, который должен помочь вам решить вашу проблему:
ptm.click(function(){
location.href = 'ptm_sp.php?ptm_sp=h3R2ci';
});
Кроме того, я не мог не заметить, что вы можете немного оптимизировать размер кода.Прямо сейчас ваш код JS выводится так:
var ptm = paper.text(13.791304347826, 35, 'me2');
ptm.attr({'font-size':9});
ptm.attr({'href':'ptm_sp.php?ptm_sp=H3R2me2'});
var t = paper.text(13.791304347826, 70, 'R');
t.attr({'font-size':16});
var num = paper.text(13.791304347826, 85, '2');
num.attr({'font-size':9});
// etc.
... который увеличивается с 3 строками на элемент.Тем не менее, он может увеличиться с одной строки на элемент:
var t = []; // texts
t.push([13.791304347826, 35, 'me2', 9, 'ptm_sp.php?ptm_sp=H3R2me2']);
t.push([13.791304347826, 70, 'R', 16]);
t.push([13.791304347826, 85, '2', 9]);
for(var i = 0; i < t.length; i++){
var tt = paper.text(t[i][0], t[i][1], t[i][2]);
var ta = {};
if(t[i][3]) ta['font-size'] = t[i][3];
if(t[i][4]) ta['href'] = t[i][3];
tt.attr(ta);
}
Просто мысль!Разместите свой код на Code Review , чтобы развить свои навыки кодирования - настоятельно рекомендуется!:)