Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: интерфейс для создания ссылки
 
 автор: VYB   (20.09.2007 в 10:14)   письмо автору
 
 

Доброе утро!
Подскажите пожалуйста как на JavaScript сделать интерфейс, применимый к тэгу форматирования текста как ссылки(который на этом форуме-"[url] и [/ url]")?
Хотелось бы чтобы при нажатии на ссылку с тэгами выводилось окно с текстовым полем, куда надо вписать url ресурса, а затем его описание.Можно сделать все в одном окне,а можно и последовательно-после того,как юзер введет url, откроется окно с полем, куда надо ввести описание.Результатом будет вставка тэга [url] с соответствующими значениями в текстовое поле.

   
 
 автор: sim5   (20.09.2007 в 11:06)   письмо автору
 
   для: VYB   (20.09.2007 в 10:14)
 

Не охота все очищать, привожу полностью, лишнее выбросите сами. Это обычная вставка bb-кода. Если отметить текст, то bb-теги будут добавлены к выделенному, если сразу выбрать тип bb-кода, то текст будет запрошен в окне. Это касается всего, включая и вставки url и e-mail.


<head>
<script>
tag_prompt = "Введите текст для:";
link_text_prompt = "Введите имя ссылки";
link_url_prompt = "Введите адрес ссылки";
link_email_prompt = "Введите e-mail адрес";

var text = "";
AddTxt = "";
function getActiveText(selectedtext) { 
text = (document.all) ? document.selection.createRange().text : document.getSelection();
if (selectedtext.createTextRange) {
   selectedtext.caretPos = document.selection.createRange().duplicate();
  }
  return true;
}

function AddText(NewCode,theform) {
if (theform.message.createTextRange && theform.message.caretPos) {
  var caretPos = theform.message.caretPos;
  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
 } else {
     theform.message.value+=NewCode
   }
 setfocus(theform);
 AddTxt = "";
}

function setfocus(theform) {
theform.message.focus();
}

function bbcode(theform,bbcode,prompttext) {
if (text == "") {
  inserttext = prompt(tag_prompt+"\n["+bbcode+"]xxx[/"+bbcode+"]",prompttext);
  if (inserttext != null && inserttext != "") AddTxt = "["+bbcode+"]"+inserttext+"[/"+bbcode+"] ";
 } else { AddTxt = "["+bbcode+"]"+text+"[/"+bbcode+"] "; }
 AddText(AddTxt,theform);
 theform.message.focus(); 
}

function fontformat(theform,thevalue,thetype) {
if (thevalue != 0) {
  if (text == "") {
    inserttext = prompt(tag_prompt+" "+thetype,"");
      if (inserttext != null && inserttext != "")
           AddTxt= "["+thetype+"="+thevalue+"]"+inserttext+"[/"+thetype+"] ";
        } else { AddTxt = "["+thetype+"="+thevalue+"]"+text+"[/"+thetype+"] "; }
      AddText(AddTxt,theform);
    }
   theform.sizeselect.selectedIndex = 0;
   theform.fontselect.selectedIndex = 0;
   theform.colorselect.selectedIndex = 0;
   theform.message.focus();
}

function namedlink(theform,thetype) {
if (text == "") linktext = prompt(link_text_prompt,"");
  else linktext = text;
var prompt_text;
if (thetype == "URL") {
  prompt_text = link_url_prompt;
  prompt_contents = "http://";
 } else {
   prompt_text = link_email_prompt;
   prompt_contents = "";
 }
 linkurl = prompt(prompt_text,prompt_contents);
 if (linkurl != null && linkurl != "") {
   if (linktext != null && linktext != "") {
      AddTxt = "["+thetype+"="+linkurl+"]"+linktext+"[/"+thetype+"] ";
      AddText(AddTxt,theform);
   } else {
      AddTxt = "["+thetype+"]"+linkurl+"[/"+thetype+"] ";
      AddText(AddTxt,theform);
    }
  }
}
</script>    
</head>

<body>
<form method="post" action="addentry.php" name="bbform">
<select id="fontselect" style="width: 130px;" 
 onchange="fontformat(this.form,this.options[this.selectedIndex].value,'FONT')">
 <option value="0">Шрифт</option>
 <option value="arial">Arial</option>
<option value="comic sans ms">Comic</option>
<option value="courier">Courier</option>
<option value="courier new">Courier New</option>
<option value="tahoma">Tahoma</option>
<option value="times new roman">Times New Roman</option>
<option value="verdana">Verdana</option>
</select>
<select id="sizeselect" style="width: 130px;" 
 onchange="fontformat(this.form,this.options[this.selectedIndex].value,'SIZE')">
 <option value="0">Размер</option>
 <option value="1">малый</option>
<option value="2">средний</option>
<option value="3">большой</option>
<option value="4">гигант</option>
</select>
<select id="colorselect" style="width: 130px;" 
 onchange="fontformat(this.form,this.options[this.selectedIndex].value,'COLOR')">
 <option value="0">Цвет</option>
 <option value="#4169e1" style="color:#4169e1">темно-голубой</option>
<option value="#0000ff" style="color:#0000ff">синий</option>
<option value="#000080" style="color:#000080">темно-синий</option>
<option value="#ffa500" style="color:#ffa500">оранжевый</option>
<option value="#ff4500" style="color:#ff4500">оранжево-красный</option>
<option value="#ff0000" style="color:#ff0000">красный</option>
<option value="#b22222" style="color:#b22222">кирпичный</option>
<option value="#800000" style="color:#800000">темно-красный</option>
<option value="#d2691e" style="color:#d2691e">шоколадный</option>
<option value="#a0522d" style="color:#a0522d">темно-коричневый</option>
<option value="#ff00ff" style="color:#ff00ff">розовый</option>
<option value="#800080" style="color:#800080">пурпурный</option>
<option value="#32cd32" style="color:#32cd32">салатный</option>
<option value="#008000" style="color:#008000">зеленый</option>
<option value="#008080" style="color:#008080">сине-зеленый</option>
<option value="#006600" style="color:#006600">темно-зеленый</option>
<option value="#808080" style="color:#808080">серый</option>
</select>
<input type="image" 
 src="bold.gif" width=16 height=18 border=0 onclick="bbcode(this.form,'B','');return false" 
 title="жирный (alt+b)" accesskey="b"><input type="image" src="italic.gif" width=17 height=18 
 border=0 onclick="bbcode(this.form,'I','');return false" title="наклонный (alt+i)" accesskey="i"><input 
 type="image" src="underl.gif" width=17 height=18 border=0 onclick="bbcode(this.form,'U','');return false" 
 title="подчеркнутый (alt+u)" accesskey="u">&nbsp;&nbsp;&nbsp;&nbsp;<input type="image" src="urls.gif" 
 width=16 height=18 border=0 title="Вставить URL адрес" onclick="namedlink(this.form,'URL');return false"><input 
 type="image" src="eml.gif" width=17 height=18 border=0 title="Вставить E-mail адрес" 
 onclick="namedlink(this.form,'EMAIL');return false">
<TEXTAREA NAME="message" ROWS=10 COLS=60 wrap="soft" 
onChange="getActiveText(this)"
 onclick="getActiveText(this)" 
onFocus="getActiveText(this)"></TEXTAREA><br>
</form>
</body>

   
 
 автор: VYB   (20.09.2007 в 11:41)   письмо автору
 
   для: sim5   (20.09.2007 в 11:06)
 

Спасибо!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования