|
|
|
| Вот есть работающий код, аналог кода что на этом форуме
<!--
function tag(text1, text2)
{
if((document.selection))
{
document.form.message.focus();
document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2;
}
else if(document.forms['form'].elements['message'].selectionStart !=undefined)
{
var element = document.forms['form'].elements['message'];
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
element.value = str.substr(0, start)+text1+str.substr(start, length)+text2+str.substr(start+length);
}
else document.form.message.value+=text1+text2; ?}
//-->
|
текст в поля вставляется, а вот курсор после вставки переносится в конец! Как сделать что был как на этом форуме, - между тегами! Например [codе]курсор[/соde]? Сдесь не могу понять | |
|
|
|
|
|
|
|
|
для: PAT
(04.06.2009 в 09:28)
| | Спасибо, PAT все теперь понятно | |
|
|
|
|
|
|
|
для: PAT
(04.06.2009 в 09:28)
| | PAT, пригдянулся к коду и там не совсем то что мне нужно.... там у вас рассматривается положение курсора с разных браузеров, так вот не один пример для моего случая не подходит, ведь мне необходимо чтобы курсор поподал всегда МЕЖДУ вставленными тегами | |
|
|
|
|
|
|
|
для: Stanisov
(06.06.2009 в 15:12)
| | От вас требуется уточнение.
Скрипт по ссылке В ЧАСТНОМ СЛУЧАЕ (номер 1) работает так:
Кликаем по какому-то месту текста внутри TEXTAREA, а затем жмём на кнопку нужного нам
вставляемого тега и в TEXTAREA получаем:
текст до места клика[тег][/тег]текст после места клика
|
В ЧАСТНОМ СЛУЧАЕ (номер 2) по TEXTAREA вовсе не кликаем (не даём ему фокус), а просто
жмём на кнопку нужного нам вставляемого тега и в TEXTAREA получаем:
В двух этих ЧАСТНЫХ случаях всё ЯСНО - вам надо, чтобы курсор мигал между символами ] и [.
Но ГДЕ ИМЕННО должен мигать курсор В ОБЩЕМ СЛУЧАЕ, когда сначала выделяем какой-то
кусочек имеющегося текста мышкой и затем жмём на кнопку нужного нам вставляемого тега и в
TEXTAREA получаем:
текст[тег]выделенный ранее текст[/тег]текст
|
После КАКОЙ ИМЕННО БУКВЫ в "выделенном ранее тексте" должен мигать курсор?
Перед первой? После последней? Посередине?
Ответьте на поставленный вопрос - и я постараюсь вам помочь. | |
|
|
|
|
|
|
|
для: PAT
(06.06.2009 в 15:50)
| | Ааааха....а вот тут заморочко :)....
ЕСЛИ вставлять тэги в поле текстареа НЕ ВЫДЕЛЯЯ до этого текст, то - курсор должен быть [] | [/] всегда между ними, (чтобы удобней было прописывать в них текст)
|
а вот ЕСЛИ вставлять тэги, перед этим выделив необходимый текст (который они должны обрамлять), то - курсор должен быть вконце [][/] |
|
...Вот именно так мне нужно | |
|
|
|
|
|
|
|
для: Stanisov
(06.06.2009 в 18:04)
| |
function tag (TXT, startTag, endTag)
{
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;
}
|
| |
|
|
|
|
|
|
|
для: PAT
(06.06.2009 в 19:50)
| | Этот код вообще не работает, делаю textarea id="TXT"
а в ссылке параметр onClick="javascript:tag(getElementById('TXT'),'[uri]','[/uri]')"
и код вообще не вставляется | |
|
|
|
|
|
|
|
для: Stanisov
(07.06.2009 в 23:12)
| | 1. Коды, которые я здесь выкладываю, РАБОТАЮТ.
Ибо я их проверяю.
Как минимум в трёх браузерах (MSIE, FireFox, Opera).
2. Присваивать вашему TEXTAREA идентификатор id="TXT" совсем не нужно было.
Переменная TXT - это аргумент функции.
При вызове функции этот аргумент получает то значение,
кое вы передадите в качестве параметра.
3.
onClick="javascript:tag(getElementById('TXT'),'[uri]','[/uri]')" - неправильно
onclick="tag (document.getElementById ('id_вашего_textarea'), '[uri]', '[/uri]')" - правильно
|
Проверяйте:
<script>
function tag (TXT, startTag, endTag)
{
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>
<textarea id="myId" style="width: 100%; height: 200px"></textarea><br>
<input type="button" value="Insert Tag" onclick="tag (document.getElementById ('myId'), '[uri]', '[/uri]')">
|
PS. На будущее - протокол javascript: используют где-либо, кроме атрибута HREF тега <A>,
только придурки. Не уподобляйтесь им. | |
|
|
|
|
|
|
|
для: PAT
(08.06.2009 в 01:51)
| | Доброго всем времени суток.
Есть у меня код
<form method=$_POST "ACTION=message">
<select name="name" size=1 >
<option selected> 1</option>
<option> 2</option>
<option> 3</option>
<option> 4</option>
</select>
<input style="margin:0px; type="button" value="paste" onClick="editform.message.value = "name">
</form>
<textarea name="message" rows="15" cols="76" tabindex="3" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" style="width: 98%;"></textarea>
|
он не пашет
Задача такова - юзер а форуме из списка выбирает нужную формулу вида "\int" "\cos" и нажимает кнопку вставить, которая впихивает это в texarea.
из ваших тем
http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=65593
http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=64151
узнал что это надо делать с помощью js.
Помогите плиз разобраться! Первый раз сел чето кодить! Может кто знает где готовая форма лежит, или пните в нужном направлении! | |
|
|
|
|
|
|
|
для: PAT
(08.06.2009 в 01:51)
| | Спасибо за представленный код. Все отлично работает. | |
|
|
|