| 
		
			Сообщение от _0_
			
		
	 | 
	| 
		Замечен глюк, с выделением текста, работаю над этим.
	 | 
	
строка 153
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>TD resizer</title>
	<style>
		table.mask.resizable td *{
			visibility:hidden;
		}
		table.resizable td{
			cursor:default ;
		}
		table.resizable.up-down {
			cursor:s-resize;
		}
		table.resizable.left-right{
			cursor:e-resize;
		}
	</style>
</head>
<body>
<table width='600' height='400' border='1' id='table' cellspacing='5' class="resizable" >
	<tr>
		<td class="resizable" width="200"><div style="width:100%;height:100%;background-color:red">1</div></td>
		<td>2</td>
	</tr>
	<tr>
		<td>1</td>
		<td>
Javascript - скриптовый язык, предназначенный для создания интерактивных веб-страниц.
Javascript не требуется компилировать, он подключается к HTML-странице и работает "как есть".
Javascript - НЕ java, а совсем другой язык. Он похоже называется, но не более того. У javascript есть свой стандарт: ECMAScript, спецификация которого находится на сайте в разделе стандарт языка.
Кто-то говорит, что javascript похож на Python, кто-то говорит о схожести с языками Ruby, Self. Правда заключается в том, что javascript сам по себе. Это действительно особенный язык.
		</td>
	</tr>
</table>
<script language="javascript">
	var table_resizer = (function(){
		var tags=' TABLE TR TBODY '
		function check_tag( tag ){
			return ( tags.indexOf(' '+tag+' ') >=0 );
		}
		var offsets = 7; // отступ для поиска ячейки
		function get_method( ev ){
			/*
				На мгновение скрываем дочерние элементы в яйчейках таблицы и
				ищем правило изменения размера.
				resizable - класс ячейки, которая может изменять размер
			*/
			this.classList.add('mask');
			var x = ev.pageX;
			var y = ev.pageY;
			var top = document.elementFromPoint( x , y-offsets );
			var right = document.elementFromPoint( x+offsets , y );
			var bottom = document.elementFromPoint( x , y+offsets );
			var left = document.elementFromPoint( x-offsets , y );
			var method = null;
			this.classList.remove('mask');
			if( top && bottom && top.tagName == 'TD' && bottom.tagName == 'TD' ) {
				method = { rule:'up-down' };
				if( top.classList.contains('resizable') ){
					method.target = top;
				}else if( bottom.classList.contains('resizable') ){
					method.target = bottom;
				}
			}
			if( right && left && right.tagName == 'TD' && left.tagName == 'TD' ) {
				method = { rule:'left-right' };
				if( right.classList.contains('resizable') ){
					method.target = right;
				}else if( left.classList.contains('resizable') ){
					method.target = left;
				}
			}
			if( method && method.rule && method.target ) return method;
			return null;
		}
		// расширитель таблицы
		return {
			method:null,
			// реализация изменения размера
			onmousedown:function( ev ){
				var tag = ev.target.tagName;
				if( check_tag(tag) ){
					var method = get_method.call(this,ev);
					if( method ){
						var data = {};
						data.x = ev.pageX;
						data.y = ev.pageY;
						data.height = method.target.clientHeight;
						data.width = method.target.clientWidth;
						var move = function(ev){
							switch( method.rule ){
								case 'up-down':
									method.target.style.height = (data.height + ev.pageY - data.y) + 'px';
								break;
								case 'left-right':
									method.target.style.width = (data.width + ev.pageX - data.x) + 'px';
								break;
							}
						}
						var stop = function(ev){
							document.removeEventListener( 'mousemove' , move, true );
							document.removeEventListener( 'mouseup' , stop, true );
						   //	document.removeEventListener( 'selectstart' , select_start, true );
							tag = method = data = stop = move = null;
						}
						//var select_start = function(ev){
						 //	return false;
					   //	}
						document.addEventListener( 'mousemove' , move, true ); // работаем с всплытием
						document.addEventListener( 'mouseup' , stop, true );
					  //	document.addEventListener('selectstart',select_start,true);
return false					}
			}
			},
			// индикация возможности изменения
			onmouseover:function( ev ){
				var tag = ev.target.tagName;
				if( check_tag(tag) ){
					var method = get_method.call(this,ev);
					if( method ){
						this.classList.add( method.rule );
					}
				}else{
					var c = this.classList;
					c.remove('up-down');
					c.remove('left-right');
				}
			},
		}
	})()
	// поиск таблиц
	function set_table_resizer(){
		var tbs = document.querySelectorAll('TABLE.resizable');
		for( var i=0,l=tbs.length; i<l; i++ ){
			var tb = tbs[i];
			for( var p in table_resizer ){ // расширение элемента
				if( table_resizer.hasOwnProperty(p) ){
					tb[p]=table_resizer[p];
				}
			}
		}
	}
	window.onload=function(){
		set_table_resizer();
	}
</script>
</body>
</html>