Спасибо =)
http://forum.vingrad.ru/topic-55935/15.html#st_0_view_0
Форум → Программирование → PHP для идиотов → Вставка текста в Textarea
Вставка текста в Textarea
Страницы: ← Предыдущая страница • Следующая страница →
-
8 июля 2009 г. 22:54, спустя 40 секунд
-
9 июля 2009 г. 9:37, спустя 10 часов 42 минуты 27 секунд
что-то большие листинги и ещё не гарантируется работа в Opera. я использую:
function insert_text(open, close)
{
msgfield = (document.all) ? document.all.req_message : ((document.getElementById('afocus') != null) ? (document.getElementById('afocus').req_message) : (document.getElementsByName('req_message')[0]));
// IE support
if (document.selection && document.selection.createRange)
{
msgfield.focus();
sel = document.selection.createRange();
sel.text = open + sel.text + close;
msgfield.focus();
}
// Moz support
else if (msgfield.selectionStart || msgfield.selectionStart == '0')
{
var startPos = msgfield.selectionStart;
var endPos = msgfield.selectionEnd;
msgfield.value = msgfield.value.substring(0, startPos) + open + msgfield.value.substring(startPos, endPos) + close + msgfield.value.substring(endPos, msgfield.value.length);
msgfield.selectionStart = msgfield.selectionEnd = endPos + open.length + close.length;
msgfield.focus();
}
// Fallback support for other browsers
else
{
msgfield.value += open + close;
msgfield.focus();
}
return false;
}
смайлы и bbcode вставляются так:
<form method="post" action="post.php">
<fieldset>
…
<a href="#" title="b" onclick="return insert_text('','')"><img src="img/bbcode/b.png" alt="" /></a>
…
<a href="#" onclick="return insert_text('', ' :) ');" ><img src="img/smilies/smile.png" alt=":)" /></a>
…
<textarea name="req_message" rows="7" cols="75"></textarea>
</fieldset>
<input type="submit" name="submit" value="Submit" />
</form>ιιlllιlllι унц-унц -
-
9 июля 2009 г. 10:10, спустя 3 минуты 39 секунд
раз уже зашел разговор про BB, то как организовать функцию обработки BB кодов?
для вставки текста мне понравилась вот такая фуккция:
function TextAreaSelectionHelper(obj) {
this.target=obj;
this.target.carretHandler=this; //ссылка самого на себя для текстового поля
this.target.onchange=_textareaSaver;
this.target.onclick=_textareaSaver;
this.target.onkeyup=_textareaSaver;
this.target.onfocus=_textareaSaver;
if(!document.selection) this.target.onSelect=_textareaSaver; //для Мозиллы
this.start=-1;
this.end=-1;
this.scroll=-1;
this.iesel=null; //для ИЕ
}
TextAreaSelectionHelper.prototype.getSelectedText=function() {
return this.iesel? this.iesel.text: (this.start>=0&&this.end>this.start)? this.target.value.substring(this.start,this.end): "";
}
TextAreaSelectionHelper.prototype.setSelectedText=function(text, secondtag) {
if(this.iesel) {
if(typeof(secondtag)=="string") {
var l=this.iesel.text.length;
this.iesel.text=text+this.iesel.text+secondtag;
this.iesel.moveEnd("character", -secondtag.length);
this.iesel.moveStart("character", -l);
} else {
this.iesel.text=text;
}
this.iesel.select();
} else if(this.start>=0&&this.end>=this.start) {
var left=this.target.value.substring(0,this.start);
var right=this.target.value.substr(this.end);
var scont=this.target.value.substring(this.start, this.end);
if(typeof(secondtag)=="string") {
this.target.value=left+text+scont+secondtag+right;
this.end=this.target.selectionEnd=this.start+text.length+scont.length;
this.start=this.target.selectionStart=this.start+text.length;
} else {
this.target.value=left+text+right;
this.end=this.target.selectionEnd=this.start+text.length;
this.start=this.target.selectionStart=this.start+text.length;
}
this.target.scrollTop=this.scroll;
this.target.focus();
} else {
this.target.value+=text + ((typeof(secondtag)=="string")? secondtag: "");
if(this.scroll>=0) this.target.scrollTop=this.scroll;
}
}
TextAreaSelectionHelper.prototype.getText=function() {
return this.target.value;
}
TextAreaSelectionHelper.prototype.setText=function(text) {
this.target.value=text;
}
function _textareaSaver() {
if(document.selection) {
this.carretHandler.iesel = document.selection.createRange().duplicate();
} else if(typeof(this.selectionStart)!="undefined") {
this.carretHandler.start=this.selectionStart;
this.carretHandler.end=this.selectionEnd;
this.carretHandler.scroll=this.scrollTop;
} else {this.carretHandler.start=this.carretHandler.end=-1;}
}
////////////////////////////////////////////////////////////////////////////////
onload = function () {
text = new TextAreaSelectionHelper(document.getElementById("textarea"));
}
<a class="bold" href='javascript: text.setSelectedText("", "")'>B</a>Спустя 208 сек.
поиск кстате не рулит,не работает чото(
нефига. не пробовал как сделать bb коды ?
сам то нашел чета полезное в том что ты мне линкнул? я - нет, мож плохо искал но нету там ничо -
9 июля 2009 г. 11:03, спустя 52 минуты 54 секунды
поиск кстате не рулит,не работает чото(
реально по форуму поиск не пашет -
-
-
-
9 июля 2009 г. 15:34, спустя 20 минут 48 секунд
пока что похуй какой запрос все равно не пашет =)
в зависимости от запроса)Спустя 96 сек.а не сорри уже работает =) -
9 июля 2009 г. 22:12, спустя 6 часов 38 минут 15 секунд
раз мы уже пошли по bb кодам, тогда подскажите тогда как мне организовать через
вставку текста, типо вставка url ссылки?prompt
Спустя 42 сек.собсно код<img src="img/insert_link.png" width="16" height="16" alt="Ссылка">
Спустя 108 сек.код который работает<img src="img/bold.png" alt="Жирным" width="16" height="16" onClick='javascript: text.setSelectedText("", "")'>
и я не пойму куда тут prompt тулить -
9 июля 2009 г. 22:26, спустя 14 минут 3 секунды
onClick='javascript:
нахер тут "javascript: "?https://smappi.org/ - платформа по созданию API на все случаи жизни -
9 июля 2009 г. 22:27, спустя 56 секунд
ыыы ржака. есть такая хуйняonClick='javascript:
нахер тут "javascript: "?Сапожник без сапог -
9 июля 2009 г. 22:31, спустя 4 минуты 26 секунд
phpdude, я понимаю когда <a href="javascript:alert();">, но когда в онклик!https://smappi.org/ - платформа по созданию API на все случаи жизни -
9 июля 2009 г. 22:33, спустя 1 минуту 30 секунд
а ие6 понимает в любом случае, приходится мириться с неадекватностью печатных изданий в окторых такие уебанские примеры пишут
phpdude, я понимаю когда <a href="javascript:alert();">, но когда в онклик!Спустя 15 сек.пора клаву менять, руки хуйню на этой писать сталиСапожник без сапог -
9 июля 2009 г. 22:35, спустя 2 минуты 5 секунд
источились клавиши?))https://smappi.org/ - платформа по созданию API на все случаи жизни
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!