Тема: UpJump: Q&A :)
Показать сообщение отдельно
  #243 (permalink)  
Старый 10.08.2011, 04:39
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<!DOCTYPE HTML>
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v" />
<html>
<head>
<style>
v\:shape{behavior: url(#default#VML);}
v\:formulas{behavior: url(#default#VML);}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<script type="text/javascript">
var shape = document.createElement('v:shape');
document.body.appendChild(shape);
var formulas = document.createElement('v:formulas');
formulas.className = 'c';
shape.appendChild(formulas);
shape.coordsize = "500,500";
shape.style.position = 'absolute';
shape.className = 'c';
shape.fillcolor="red";
shape.style.width = '500px';
shape.style.height = '500px';
shape.path = "m 100,100 l 200,300 300,400 200,100 x e ns";
//shape.setAttribute('path',path);
</script>
</body>

</html>


IE 8 css свойство вида: v\:* не понимает, нужно указывать явно названия элементов.
задавать path через .setAttribute в ИЕ не надо. Он так работать не будет, нужно обращаться на прямую shape.path
ну и как видишь namespace нужно указывать в xml теге а не в html

что бы не прописывать XML тег и не писать стили, это можно сделать через javascript:
try {
	if (!document.namespaces.v) {
		document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
	}
} catch (e) {}

document.v_shape_stylesheet = document.createStyleSheet();
document.v_shape_stylesheet.addRule("v\\:shape", "behavior: url(#default#VML);");
document.v_shape_stylesheet.addRule("v\\:formulas", "behavior: url(#default#VML);");

Удачи!

Последний раз редактировалось devote, 10.08.2011 в 04:44.
Ответить с цитированием