BBCode под IE

dakata__92

Super Moderator
Защо системата която ще пратя под ИЕ не добавя в текстовото поле кодовете, а по страницата го прави ?
index.php
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;  charset=UTF-8" />
<title>Добавяне на уроци</title>
<script src="BBbutons.js"  type="text/javascript"></script> 
</head>
<body style="background: #ececec;">	
<center>  
<form method="post" action="add.php" >
<script>bbcodetoolbar('area'); </script> 
<input type='text' size='65' name='title'>
<textarea id="area" name="text" cols="130" rows="20"></textarea><br />
<input type="submit" name="submit" value="Добави"/><input type="reset" value="Изчисти"/>
</form>	
</center>
<br />    
</body>
</html>

BBbutons.js
[js]
document.write("<script src='http://code.jquery.com/jquery-latest.js'></script>");//добяме последната версия на jquery
var textarea;
var content;

function bbcodetoolbar(obj) { //създаваме функцията за показване на bbcode editor-a
document.write("<style>.button {border: 1px solid #ccc;margin: 1px;padding: 2px;}.button:hover {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=60);-moz-opacity: 0.6;opacity:0.6;}.ed {width: 400px;height: 150px;}</style>");//стила на бутоните
document.write("<div class=\"toolbar\">");
document.write("<img class=\"button\" src=\"images/bold.gif\" name=\"btnBold\" title=\"Удебеленяване\" onClick=\"addtags('','','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/italic.gif\" name=\"btnItalic\" title=\"Наклоняване\" onClick=\"addtags('','','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/underline.gif\" name=\"btnUnderline\" title=\"Подчертаване\" onClick=\"addtags('','','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/strike.gif\" name=\"btnUnderline\" title=\"Зачеркване\" onClick=\"addtags('','','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/left.png\" name=\"btnUnderline\" title=\"Подравняване в ляво\" onClick=\"addtags('[l]','[/l]','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/center.png\" name=\"btnUnderline\" title=\"Подравняване в центъра\" onClick=\"addtags('[c]','[/c]','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/right.png\" name=\"btnUnderline\" title=\"Подравняване в дясно\" onClick=\"addtags('[r]','[/r]','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/justify.png\" name=\"btnUnderline\" title=\"Двостранно подравняване\" onClick=\"addtags('[j]','[/j]','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/unordered.gif\" name=\"btnUnderline\" title=\"Списък\" onClick=\"addlist('" + obj + "','un')\">");
document.write("<img class=\"button\" src=\"images/ordered.gif\" name=\"btnUnderline\" title=\"Списък с номерация\" onClick=\"addlist('" + obj + "','or')\">");
document.write("<img class=\"button\" src=\"images/link.gif\" name=\"btnLink\" title=\"Добави линк\" onClick=\"addurl('" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/picture.gif\" name=\"btnPicture\" title=\"Добави снимка\" onClick=\"addimage('" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/linkpic.gif\" name=\"btnPicture\" title=\"Добави снимка с линк\" onClick=\"addimgurl('" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/quote.gif\" name=\"btnQuote\" title=\"Цитат\" onClick=\"addtags('
','" + obj + "')\">");
document.write("<img class=\"button\" src=\"images/code.gif\" name=\"btnQuote\" title=\"Код\" onClick=\"addtags('
Код:
','
','" + obj + "')\">");
document.write("<br><select name=\"fontcolor\" id=\"font\" onChange=\"addtags('[color='+$('#font').val()+']','[/color]','" + obj + "')\">");
document.write("<option value=\"0\" style=\"color:black\">Изберете цвят</option>");
document.write("<option value=\"black\" style=\"color:black\">Черенo</option>");
document.write("<option value=\"silver\" style=\"color:silver\">Сребро</option>");
document.write("<option value=\"gray\" style=\"color:gray\">Сиво</option>");
document.write("<option value=\"maroon\" style=\"color:maroon\">Кестеняво</option>");
document.write("<option value=\"red\" style=\"color:red\">Червено</option>");
document.write("<option value=\"navy\" style=\"color:navy\">Тъмносиньо</option>");
document.write("<option value=\"blue\" style=\"color:blue\">Синьо</option>");
document.write("<option value=\"green\" style=\"color:green\">Зелено</option>");
document.write("<option value=\"olive\" style=\"color:eek:live\">Маслиненозелено</option>");
document.write("<option value=\"yellow\" style=\"color:yellow;background-color:red;\">Жълто</option>");
document.write("<option value=\"white\" style=\"color:white;background-color:#ADADAD;\">Бяло</option>");
document.write("<option value=\"purple\" style=\"color:purple\">Пурпурен</option>");
document.write("</select>");
document.write("<select name=\"size\" id=\"size\" onChange=\"addtags('','','" + obj + "')\">");
document.write("<option value=\"0\">Изберете размер</option>");
document.write("<option value=\"7\">Много малък</option>");
document.write("<option value=\"9\">Малък</option>");
document.write("<option value=\"12\">Нормален</option>");
document.write("<option value=\"18\">Голям</option>");
document.write("<option value=\"24\">Много голям</option>");
document.write("</select> ");
document.write("Колони: <input type='text' name='cols' id='cols' size='1' maxlength='2'/>");
document.write("Редове: <input type='text' name='rows' id='rows' size='1' maxlength='2'/>");
document.write("<input type='button' name='addt' value='Добави таблица' onClick=\"addtable('"+obj+"')\"/>");
document.write("</div>");
document.write("<div id='smiles' style='width:600px;'></div>");//ако не искате да имате smiles махнете този ред!

var dir = "smiles/";//въведи папката в която са картинките
var link=['smile.gif','sad.gif','laught.gif'];//въведи името на всяка една картинка
var icon=[':)',':(',':D'];//въведи съответния текст(иконката) който ще се добавя в textarea-та
jQuery.each(link, function(i,v) {//за всяки веведен линк...
var cont = $('#smiles').html();
$('#smiles').html(cont+"<img src='"+dir+v+"' onClick=\"addtags('',' "+icon+" ','" + obj + "')\" /> ");//... ще се добавя нов img над textareata
});
}

function addlist(obj,ord){//функция за създаване на списък
var textarea = $('#'+obj);//взимаме id-то на textarea-та
var value = textarea.val();//стойноста на textarea-та
var listvalue = "init";
var thelist = "";
while ( (listvalue != "") && (listvalue != null) ) {//докато не натиснем "отказ" или оставим празно полето...
listvalue = prompt("Въведи предмет в списъка. Кликни на 'Отказ' или остави празно и натисни 'ОК', за да завършиш списъка", "");//... ще ни се появява input в който да напишем елемента от списъка
if ( (listvalue != "") && (listvalue != null) ) {
thelist += "[*]"+listvalue+"\n";
}
}
if ( thelist != "") {
thelist = "\n
  • \n"+thelist+"
\n";
addtags('',thelist,obj);//добавяме списъка към textarea-та
}
}

function addtable(obj) {//функция за създаване на таблица
var textarea = $('#'+obj);//взимаме id-то на textarea-та
var value = textarea.val();//стойноста на textarea-та
var rows=$('#rows').val();//стойноста на input rows т.е колко реда да има таблицата
var cols=$('#cols').val();//стойноста на input cols т.е колко колони да има таблицата
var text = "\n
";
text +="
\n";
for(i=1;i<=rows;i++) {//за всяки ред добавяме код за редове
text +=" \n";
for(k=1;k<=cols;k++){//за всяки колона добавяме код за колона
text +=" \n";
}
text +=" \n";
}
text += "
\n";
addtags('',text,obj);//добавяме таблицата към textarea-та
$('#rows').val("");
$('#cols').val("");//изчистваме 2-та input-а
}


function addimage(obj){//функция за добавяне на снимка към
textarea = document.getElementById(obj);
var url = prompt('Въведи линк към картинката','http://');//прозорче в което да въведеш линка към картинката
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
if (url != '' && url != null) {//ако сте въвели стойност в input полето ще продължи долния код

if (document.selection) {
textarea.focus();//фокусираме textareata
var sel = document.selection.createRange();//взема се стойноста на селектирания текст
sel.text = '
';
}//ако сте селектирали текст(линк) ще бъде добавено след него
else {
textarea.focus();//фокусираме textareata
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);
var rep = '[img]' + url + '';
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}//ако не сте ще селектирали текст(линк) ще бъде добавено там където е курсора
}
}

function addurl(obj){//фунция за добавяне на линк
textarea = document.getElementById(obj);
var url = prompt('Въведете линк:','http://');//прозорче в което да въведеш линка
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
if (url != '' && url != null) {//ако сте въвели стойност в input полето ще продължи долния код
if (document.selection) {
textarea.focus();//фокусираме textareata
var sel = document.selection.createRange();//взема се стойноста на селектирания текст

if(sel.text==""){
var url2 = prompt('Име на линка','');//ако не сте селектирали текст който да играе ролята на име на линка то тогава ще ви излезе input поле където да въведете име
sel.text = '[url=' + url + ']' + url2 + '[/url]';
}
else {sel.text = '[url=' + url + ']' + sel.text + '[/url]';}
}
else {
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);
if(sel=="") {
var url2 = prompt('Име на линка','');
var rep = '[url=' + url + ']' + url2 + '[/url]';
}
else {var rep = '[url=' + url + ']' + sel + '[/url]';}
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}
}
}

function addimgurl(obj){//функция за добавяне на картинка с линк
textarea = document.getElementById(obj);
var url = prompt('Въведете линк:','http://');
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
if (url != '' && url != null) {
if (document.selection) {
textarea.focus();//фокусираме textareata
var sel = document.selection.createRange();//взема се стойноста на селектирания текст

if(sel.text==""){
var img = prompt('Линка към снимката','http://');
sel.text = '[img=' + url + ']' + img + '';
}
else {sel.text = '[img=' + url + ']' + sel.text + '[/img]';}
}
else {
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);
if(sel=="") {
var img = prompt('Линка към снимката','http://');
var rep = '[img=' + url + ']' + img + '[/img]';
}
else {var rep = '[img=' + url + ']' + sel + '[/img]';}
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}
}
}

function addtags(tag1,tag2,obj){//функция за добавяне на тагове
if(tag2=="[/color]" || tag2=="[/size]") {$("option[value='0']").attr('selected','selected');}//ако таг2 е [/color] или [/size] при изпълнение на функцията ще се селектне отново първия option
textarea = document.getElementById(obj);
//IE
if (document.selection) {
var sele = document.selection.createRange();//взема се стойноста на селектирания текст
sele.text = tag1 + sele.text + tag2;

}
else { //Mozilla
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
var sel = textarea.value.substring(start, end);
var rep = tag1 + sel + tag2;
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;

}
}

[/js]

4501600t.png
 
Някой може ли да ми помогне ? :) Ето това е урока който ползвам :
http://web-tourist.net/login/login/view.php?st=3361

Оправих се и сам ! Просто заменете функцията от урока така :
Код:
function addtags(tag1,tag2,obj){//функция за добавяне на тагове
if(tag2=="[/color]" || tag2=="[/size]") {$("option[value='0']").attr('selected','selected');}//ако таг2 е [/color] или [/size] при изпълнение на функцията ще се селектне отново първия option
textarea = document.getElementById(obj);
textarea.focus();	
	//IE
		if (document.selection && document.selection.createRange) {				
				var sele = document.selection.createRange();//взема се стойноста на селектирания текст
				if (sele.parentElement() == textarea) sele.text = tag1 + sele.text + tag2;
				
				
			}
   else  {  //Mozilla
  		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		var scrollTop = textarea.scrollTop;
		var scrollLeft = textarea.scrollLeft;
        var sel = textarea.value.substring(start, end);
		var rep = tag1 + sel + tag2;
        textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;	
		
	}
}
 

Горе