|
|
|
| Доброе утро!
Подскажите пожалуйста как на JavaScript сделать интерфейс, применимый к тэгу форматирования текста как ссылки(который на этом форуме-"[url] и [/ url]")?
Хотелось бы чтобы при нажатии на ссылку с тэгами выводилось окно с текстовым полем, куда надо вписать url ресурса, а затем его описание.Можно сделать все в одном окне,а можно и последовательно-после того,как юзер введет url, откроется окно с полем, куда надо ввести описание.Результатом будет вставка тэга [url] с соответствующими значениями в текстовое поле. | |
|
|
|
|
|
|
|
для: 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"> <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>
|
| |
|
|
|
|
|
|
|
для: sim5
(20.09.2007 в 11:06)
| | Спасибо!!! | |
|
|
|