Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2016, 15:10   #1
hunter0k
 
Регистрация: 23.09.2016
Сообщений: 4
По умолчанию Переделать скрипт вставки тегов

Здравствуйте, в представленном ниже скрипте теги всталяются в textarea, при этом на textarea предварительно кликать не нужно.
А как можно переделать скрипт, чтобы при вставке тегов, нужно было сначала выделить textarea в ФОКУС?
Это необходимо для того, чтобы "блог тегов" можно было применять для нескольких Форм.

PHP код:
<script
function 
tag (TXTstartTagendTag

TXT.focus (); 
if (
document.selectionwith (document.selection.createRange ()) 
   { 
   var 
texttext startTag text endTag
   if (!
t.lengthmoveEnd ('character'endTag.length * (-1)); select (); 
   } 
else if (
TXT.selectionStart >= 0with (TXT
   { 
   var 
sT scrollTopsL scrollLeftvalue
   
stS selectionStartleS selectionEnd stS
   
= (startTag t.substr (stSleS) + endTag).length
   
value t.substr (0stS) + startTag t.substr (stSleS) + endTag t.substr (stS leS); 
   if (
leSselectionStart selectionEnd stS w
   else 
selectionStart selectionEnd stS startTag.length
   
scrollTop sTscrollLeft sL
   } 
else 
TXT.value += startTag endTag

</script> 
Код HTML:
<textarea id="myId" style="width: 100%; height: 200px"></textarea><br> 
<input type="button" value="Insert Tag" onclick="tag (document.getElementById ('myId'), '[uri]', '[/uri]')">
hunter0k вне форума Ответить с цитированием
Старый 07.10.2016, 15:27   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А как можно переделать скрипт, чтобы при вставке тегов, нужно было сначала выделить textarea в ФОКУС?
тут есть проблема. Вы, когда по кнопке жмакаете, фокус автоматически переходит на кнопку. Вот она (кнопка) и находится в фокусе.
Нужно ловить не тот объект, что в фокусе, а тот, который был в фокусе до этого.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.10.2016, 15:27   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,157
По умолчанию

в раздел JS
ADSoft вне форума Ответить с цитированием
Старый 07.10.2016, 15:48   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
в раздел JS
точно так! сделано!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.10.2016, 15:50   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не знаю, насколько Вам понравится такой вариант (я его собрал по примеру из интернета), но он вроде бы работает..

Код:
<html>
<head>
	<title>Test adding tag button</title>
	<meta charset="utf-8">

<script type="text/javascript">
(function(){

  var listener = document.addEventListener ? ['addEventListener', 'DOMFocusIn', 'DOMFocusOut'] : ['attachEvent', 'onfocus', 'onblur'];

  document[ listener[ 0 ] ]( listener[ 1 ], function( e ){
 	var tmpElement = e ? e.target : window.event.target;
 	if(tmpElement.nodeName=="TEXTAREA") {
		document.focusedElement = tmpElement;
		document.getElementById('output').innerHTML = 'Фокус имела TEXT AREA id = : "' + document.focusedElement.id + '"';
	}
  }, false);

})();
 
</script>

<script>  
function tag (startTag, endTag)  
{  
	var TXT = document.focusedElement;
	if (TXT === undefined)
	  return;
	TXT.focus ();  
	if (document.selection) with (document.selection.createRange ())  
	{  
		var t = text; text = startTag + text + endTag;  
		if (!t.length) moveEnd ('character', endTag.length * (-1)); select ();  
	}  
	else if (TXT.selectionStart >= 0) with (TXT)  
   	{  
		var sT = scrollTop, sL = scrollLeft, t = value,  
		stS = selectionStart, leS = selectionEnd - stS,  
		w = (startTag + t.substr (stS, leS) + endTag).length;  
		value = t.substr (0, stS) + startTag + t.substr (stS, leS) + endTag + t.substr (stS + leS);  
		if (leS) selectionStart = selectionEnd = stS + w;  
		else selectionStart = selectionEnd = stS + startTag.length;  
		scrollTop = sT, scrollLeft = sL;  
	}  
	else TXT.value += startTag + endTag;  
}  
</script>
</head>
<body>
<div id="output"></div>
<textarea id="myId" style="width: 100%; height: 200px"></textarea><br> 
<p><input type="button" value="Insert Tag" onclick="tag ('[uri]', '[/uri]')"></p>
<label>Text Area 2</label>
<textarea id="myId2" style="width: 100%; height: 200px"></textarea><br> 
<label>Text Area 3</label>
<textarea id="myId3" style="width: 100%; height: 200px"></textarea><br> 
</body>
</html>

Последний раз редактировалось Serge_Bliznykov; 07.10.2016 в 15:53.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.10.2016, 16:15   #6
hunter0k
 
Регистрация: 23.09.2016
Сообщений: 4
По умолчанию

Serge_Bliznykov, спасибо большое, как раз то что мне нужно.
hunter0k вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт вставки сообщений при серфинге. WildHunter PHP 4 08.02.2012 00:54
Скрипт для вставки фото apollo12 PHP 0 06.12.2011 04:11
Скрипт вставки и обновления Ajax Voltash JavaScript, Ajax 4 25.10.2010 20:13
Как сделать скрипт вставки изображения!!!! BAN_D_IT Помощь студентам 2 05.10.2010 23:01
макрос копирования текста из тегов и вставки в другие теги valdem Microsoft Office Word 18 21.02.2009 13:08