Ответов: 1 Просмотров: 744
|
В общем, надо сделать так, чтобы при выделении в textarea части текста и при нажатии на соответствующую кнопку, скрипт добавлял по бокам выделенного текста добавлялись и то есть что то вроде BBcode.
У меня при нажатии на кнопку не добавляется BBcode, но и ошибки в консоли Firebug'а не вылезает. Код:
Файл: index.html
CODE ( html):
скопировать код в буфер обмена
<!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 type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script type="text/javascript" src="js/editor.js"></script> <script type="text/javascript"> </script> <link type="text/css" rel="stylesheet" href="css/editor.css" /> </head> <body> <form> <textarea name="text" editor="true"></textarea> </form> </body> </html>
Файл: editor.js
CODE ( javascript):
скопировать код в буфер обмена
$(document).ready(function(){ function wrapSelection (open, close, thisElement) { var textareaJQuery = $('#'+thisElement); if (document.selection) { var selstr = document.selection.createRange(); selstr.text = open+selstr.text+close; } else if (document.getElementById(thisElement).selectionstart || document.getElementById(thisElement).selectionstart == "0"){ var text=textareaJQuery.val(); var start=document.getElementById(thisElement).selectionstart; var end=document.getElementById(thisElement).selectionend; var tagandtext=open+text.substr(start, end-start)+close; textareaJQuery.val(text.substr(0, start)+tagandtext+text.substr(end)); } } var editor = $('textarea[editor="true"]'); var toolsContent = '<div class="editor-tools"><div class="editor-tool" style="font-weight:bold;" id="tool1">b</span></div>'; editor.attr('id','editor').before(toolsContent); $('.editor-tools #tool1').mouseout(function(){ wrapSelection("[b]", "[/b]", 'editor'); }); });
|