|
|
|
| Я в javascript не силен. Чуствую что где-то рядом ответ, надо лишь только условие правильно поставить и все. А может я ошибаюсь. Помогите, если кому не сложно это сделать.
Сначало у меня была такая форма:
<form ... name="form">
<input ...>
<input ...>
<a href="#" onClick="javascript:InsBBCode('', '[b]'); return false;">[b]</a> - Жирный<br />
<a href="#" onClick="javascript:InsBBCode('', '[i]'); return false;">[i]</a> - Наклонный<br />
<a href="#" onClick="javascript:InsBBCode('[u]', '[u]'); return false;">[u][/u]</a> - Подчеркнутый<br />
и т.д.
<textarea ... name="msg" >...</textarea>
<input ...>
</form>
|
Этот код предложенный Cheops:
<script language='JavaScript' type='text/javascript'>
<!--
function InsBBCode(text1, text2)
{
if ((document.selection))
{
document.form.msg.focus();
document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2;
} else document.form.msg.value += text1+text2;
}
-->
</script>
|
Работает отлично на IE+OPERA+(symbian+КПК без выделения) :)))
Кроме Mozilla :(
Потом форма осталось такое же, а сами ссылки на теги поменялись на такие:
<form ... name="form">
<input ...>
<input ...>
<a href="#" onClick="javascript:InsBBCode('b', 'b'); return false;">[/b]</a> - Жирный<br />
<a href="#" onClick="javascript:InsBBCode('i', 'i'); return false;">[i][/i]</a> - Наклонный<br />
<a href="#" onClick="javascript:InsBBCode('u', 'u'); return false;">[u][/u]</a> - Подчеркнутый<br />
и т.д.
<textarea ... name="msg" >...</textarea>
<input ...>
</form>
|
А вот код другой:
<script language='JavaScript' type='text/javascript'>
isDOM = document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
isOpera = isOpera5=window.opera && isDOM //Opera 5+
isOpera6 = isOpera && window.print //Opera 6+
isOpera7 = isOpera && document.readyState //Opera 7+
isMSIE = document.all && document.all.item && !isOpera //Microsoft Internet Explorer 4+
isMSIE5 = isDOM && isMSIE //MSIE 5+
isNetscape4 = document.layers //Netscape 4.*
isMozilla = isDOM && navigator.appName=="Netscape" //Mozilla или Netscape 6.*
function InsBBCode (tag) {
if(isMozilla) {
var ibTag = "["+tag+"]";
var ibClsTag = "[/"+tag+"]";
var obj_ta = document.form.msg;
var ss = obj_ta.selectionStart;
var st = obj_ta.scrollTop;
var es = obj_ta.selectionEnd;
if (es <= 2) {
es = obj_ta.textLength;
}
var start = (obj_ta.value).substring(0, ss);
var middle = (obj_ta.value).substring(ss, es);
var end = (obj_ta.value).substring(es, obj_ta.textLength);
if (obj_ta.selectionEnd - obj_ta.selectionStart > 0) {
middle = ibTag + middle + ibClsTag;
} else {
middle = ibTag + middle + ibClsTag;
}
obj_ta.value = start + middle + end;
} else {
obj_ta=document.form.msg;
obj_ta.focus();
var sel=document.selection;
var rng=sel.createRange();
rng.colapse;
var podst="["+tag+"]"+rng.text+"[/"+tag+"]";
rng.text=podst;
}
}
</script>
|
С этой поправкой работают в браузерах IE+Opera+Mozilla на компьютере отлично :)
Кроме КПК+symbian :(
Почему не хочет второй код работать?
Почему первый код работает на КПК+symbian?
Если кто не понял, переспросите что конкретно не понятно.
[b]Заранее буду всем благодарен.[/b]
ИСПРАВЛЕНО | |
|
|
|
|
|
|
|
для: Wita1y
(10.01.2007 в 14:46)
| | а разве на КПК есть поддержка яваскрипта? | |
|
|
|
|
|
|
|
для: Lelik
(10.01.2007 в 14:49)
| | 1. Зачем Вам NN4? Opera6?
2. Где раздают КПК для тестирования скриптов?
3. Что я с этого буду иметь? :)
4) Всем известно что для всех браузеров с сохранением позиции курсора работает этот код, да и то с мелкими исключениями. - | |
|
|
|
|
|
|
|
для: 12345
(10.01.2007 в 16:21)
| | >1. Зачем Вам NN4? Opera6?
Раз уж есть, так не выкидывать же! Вдруг пригодится. :)
>2. Где раздают КПК для тестирования скриптов?
Не где, он просто есть у меня. Также есть и у моих знакомых людей которые только сидят с КПК в интернете. :)
>3. Что я с этого буду иметь? :)
Я обращался к тем, кто бы смог сделать за спасибо. Слава богу есть такие люди. Насильно ведь никого не заставляю. Если нет, так я особо не расстроюсь. Мне кажется, что тут не такая уж большая проблема. Тем более js-код почти готов, осталось подправить. | |
|
|
|
|
|
|
|
для: Wita1y
(10.01.2007 в 16:36)
| | 3. Всё бы ничего, но делать для КПК, который нигде не достанешь (кроме как с соседнего стола коллеги) - не нахожу оснований :). | |
|
|
|
|
|
|
|
для: 12345
(10.01.2007 в 18:08)
| | Я сделал для symbian, а потом и до КПК доберусь ... :) | |
|
|
|
|
|
|
|
для: 12345
(10.01.2007 в 18:08)
| | - | |
|
|
|
|
|
|
|
для: Wita1y
(10.01.2007 в 19:09)
| | попробуй всё-таки протестировать JS на твоём КПК, у меня есть большие сомнения в том, что он действительно его поддерживает. Так например:
<script>
document.write("ala");
</script>
|
если выведет текст, значит смысл поковырять есть
кстати, я этот скрипт собирал по кусчкам из примеров и IPB, тоже здесь кому-то выкладывал, и мне тоже сказали, что мол переменные isOpera6 действительно ни к чему, хватит и isMSIE, isMozilla, isOpera :) | |
|
|
|
|
|
|
|
для: NIK
(10.01.2007 в 21:40)
| | Выводит. Еще окошечко выскакивает! :)
<script>
alert("ala");
</script>
|
P.S.: А недавно в один чат заходил, так он буквально пропитан javascript. | |
|
|
|