 
			
				26.12.2011, 00:57
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от dmitriymar
			
		
	 | 
 
	| 
		кста ,хотел тебя давно спросить как ты SVG и VML совмещаешь?
	 | 
 
	
 
 Меня? Я типа спец?   
Никак не совмещаю, с VML напрямую никогда не работал (когда-то пытался, но забил). А SVG встраивается корректно в поддерживаемые браузеры (HTML или XHTML, пофиг) только с помощью XML DOM (createElementNS и пр.). Пример из моего говнокода:  https://github.com/finom/jQuery-Gaus...an-blur.js#L61 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:04
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 х.з 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.11.2010 
					
					
					
						Сообщений: 4,588
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от FINoM
			
		
	 | 
 
	| 
		Меня? Я типа спец?
	 | 
 
	
 
 не так много народа юзают SVG.
  
	
 
	| 
		
			Сообщение от FINoM
			
		
	 | 
 
	| 
		 только с помощью XML DOM (createElementNS и пр.).
	 | 
 
	
 
 не,налетел в опере(в последней версии на тот момент) летом прошлым,не динамический svg работал только с XHTML документами-хотя во всех остальных популярных всё было норм. Насколько понял причина в том,что поддержку SVG ввели в НTML5. а Опера тогда(сейчас?) ещё не реализовала поддержку. 
так что мысль совмещать VML И  SVG изза этого отпала..  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось dmitriymar, 26.12.2011 в 01:08.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:13
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Хочешь встраивать SVG прямо на страницу? Типа  
<div><svg>...</svg></div>
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:17
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 х.з 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.11.2010 
					
					
					
						Сообщений: 4,588
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		да вот в принципе один из вариантов мучения с оперой тогда-другие  найти не могу...Работает везде кроме оперы,подобное было и с HTML в ней-точный код не работы в HTML найти не могу.. 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
<style type="text/css">
#apDiv1 {
	position:absolute;
	left:221px;
	top:35px;
	width:448px;
	height:331px;
	z-index:1;
}
</style>
</head>
<body>
<div >
  <svg version = "1.1"
     baseProfile="full"
                                  xmlns = "http://www.w3.org/2000/svg" 
                                  xmlns:xlink = "http://www.w3.org/1999/xlink"
                                  xmlns:ev = "http://www.w3.org/2001/xml-events"
     height = "400px"  width = "400px" onclick="qw()">
     <rect x="0" y="0" width="400" height="400" 
          fill="silver" stroke="blue" stroke-width="5px" stroke-opacity="0.5"/>
     <g fill-opacity="0.7" stroke="red" stroke-width="10px" >
        <circle cx="200px" cy="200px" r="100px" fill="red"   transform="translate(  0,0)"  />
        <circle cx="200px" cy="200px" r="100px" fill="blue"  transform="translate( 0, -200)" />
        <circle cx="200px" cy="200px" r="100px" fill="green" transform="translate(0, 200)" />
     </g>
</svg>
</div>
</body>
</html>
потом нашел что изменить для кросбраузерности,но факт остался фактом -кросбраузерная работа с SVG -только в XHTML файлах. VML -работает только в HTML  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось dmitriymar, 26.12.2011 в 01:19.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:19
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Как вариант, можно написать парсер, который обрабатывает SVG и вставляет новый, с правильными пространствами имен. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:23
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 06.05.2009 
					
					
					
						Сообщений: 1,163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от FINoM
			
		
	 | 
 
	
		Хочешь встраивать SVG прямо на страницу? Типа 
<div><svg>...</svg></div>
	 | 
 
	
 
 FINoM, 
 это тоже нифига не кроссбраузерно. Самое кроссбраузерное это из скрипта. Ну не считая embed и всё такое.  
		
	
		
		
		
		
		
			
				__________________ 
				Нужно равняться на лучших, а не оправдываться за счёт худших.
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:25
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Nekromancer
			
		
	 | 
 
	| 
		это тоже нифига не кроссбраузерно. Самое кроссбраузерное это из скрипта.
	 | 
 
	
 
 Я вот и предлагаю брать скриптом то, что в документе, обрабатывать и возвращать обратно.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:25
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 х.з 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.11.2010 
					
					
					
						Сообщений: 4,588
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Ceйчас поставил Оперу 11.60 -в ней код работает. перед обновлением и выкладыванием кода на сайт проверял в более старой версии ,но не намного. 
	
 
	| 
		
			Сообщение от FINoM
			
		
	 | 
 
	| 
		Как вариант, можно написать парсер, который обрабатывает SVG и вставляет новый, с правильными пространствами имен.
	 | 
 
	
 
 если ты об <svg:ns>-не помогало или чегото в этом роде-уже не помню что писал и где писал))). 
Дело по ходу не в пространстве имён ,а в заголовке документа
 
вот ещё одно  Добавление элемента в SVG
строки 94-95. тоже в каком то браузере был глюк-пришлось вводить это  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось dmitriymar, 26.12.2011 в 01:34.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:40
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Новичок 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 05.09.2010 
					
					
					
						Сообщений: 2,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от dmitriymar
			
		
	 | 
 
	| 
		если ты об <svg:ns>-не помогало.
	 | 
 
	
 
 Я имею в виду так: 
 
var svg = querySelector('svg');
var newSvg = document.createElementNS(svgns, 'svg');
...
// здесь берем все атрибуты svg, копируем в newSvg с пространствами имен, если есть таковые
// потом рекурсивно проходим по всем детям svg и так же создаем новые элементы, вставляя их в родительский
var tagName = childElement.tagName;
var newChildElement = document.creatElementNS(svgns, tagname);
...
//берем атрибуты из childElement, копируем в newChildElement, вставляем новый элемент в родительский...
Я не помню функций наизусть, поэтому только идея.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.12.2011, 01:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 х.з 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.11.2010 
					
					
					
						Сообщений: 4,588
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 я понял твою мысль,да это сработает при правильных заголовках документа. Момент с оперой был -что если заголовки не те -то не работает вообще никак. 
ты ведь из HTML документа не сделаешь XHTML документ . 
не заменишь <!DOCTYPE html на  
<?xml version="1.0"?> 
<html xmlns="http://www.w3.org/1999/xhtml" 
  xmlns:svg="http://www.w3.org/2000/svg" 
  xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > 
Только об Опере говорим(пред версии) -в других нет потребности городить такое 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |