Показать сообщение отдельно
  #6 (permalink)  
Старый 31.10.2011, 02:16
Интересующийся
Отправить личное сообщение для lurii Посмотреть профиль Найти все сообщения от lurii
 
Регистрация: 05.08.2010
Сообщений: 24

// где-то там после создания iframe
	if(browser()=="ie"){
		setInterval("set_focus('"+field+"')",500);
	};


function set_focus(field){
	if(ed_view(field)){//если текущий режим текст, а не html
		if(gebi("focus_"+field).value==1){//если есть фокус ввода - курсор мигает
			if(!ed_range(field).length){//если не выделена картинка\таблица

				if(editor(field).getElementById("focus")){//если метка есть - удалим и поставим новую
					ed_remove(editor(field).getElementById("focus"));
					if(editor(field).getElementById("focus")){
						return null;//удаление не получилось - баг
					};
				};
            
				if(ed_range(field).htmlText==""){//если не выделено слово
					editor(field).body.focus();
					ed_range(field).pasteHTML("<span id='focus' name='focus'></span>");
				};
			};
		};
	};
};

//это ф-я в результате должна вставить текст\html в последнее место курсора
function ins_html(field,txt){
	if(browser()=="ie"){
		if(editor(field).getElementById("focus")){//если в коде есть метка
			var rng=editor(field).body.createTextRange();
			rng.moveToElementText(editor(field).getElementById("focus"));
			rng.select();//двигаем курсор к метке

			editor(field).body.focus();
			ed_remove(editor(field).getElementById("focus"));
			ed_range(field).pasteHTML(txt);

		}else{//метки не было - встанет в начало текста
			editor(field).body.focus();
			ed_range(field).pasteHTML(txt);
		};
	}else{
		//это для нормальных браузеров
		ed_range(field).insertNode(ed_range(field).createContextualFragment(txt));
	};
};


Гуглил, читал - такая муть ... думал здесь знающий народ.
http://2007.fastcoder.ru/articles/?aid=609
http://habrahabr.ru/blogs/javascript/55922/

Последний раз редактировалось lurii, 31.10.2011 в 02:23.
Ответить с цитированием