JavaScript Редактор WYSIWYG - редактирование текстов
Здравствуйте!
Я использую свой простой редактор. Там все самые необходимые теги для форматрования текстов и используется фрейм. Добавляется отформатированный текст отлично - все работает... но вот редактировать текст - тут проблема: нужно как-то загнать текст в фрейм. Все работает на JavaScript
<form id="myform" name="myform" action="check_text.php" method="post" enctype="multipart/form-data">
<input id="Text" name="Text" type="hidden" />
</form>
<script>
function Post()
{
document.myform.Text.value=newTextArea.document.body.innerHTML;
myform.submit();
}
function EditorExecCommand(command_param)
{
var tr = frames.newTextArea.document.selection.createRange();
tr.select();
tr.execCommand(command_param);
frames.newTextArea.focus();
}
</script>
<div>
<table cellpadding=0 cellspacing=0 width=500>
<tr>
<td height=26>
<img src="bold.jpg" onClick="EditorExecCommand('Bold')" title="Жирный">
<img src="italic.jpg" onClick="EditorExecCommand('Italic')" title="Курсив">
<img src="underline.jpg" onClick="EditorExecCommand('Underline')" title="Подчеркнутый">
<img src="spacer.jpg">
<img src="left.jpg" onClick="EditorExecCommand('JustifyLeft')" title="Выровнять по левому краю">
<img src="center.jpg" onClick="EditorExecCommand('JustifyCenter')" title="Выровнять по центру краю">
<img src="right.jpg" onClick="EditorExecCommand('JustifyRight')" title="Выровнять по правому краю">
<img src="spacer.jpg">
<img src="numlist.jpg" onClick="EditorExecCommand('InsertOrderedList')" title="Нумерованый список">
<img src="marklist.jpg" onClick="EditorExecCommand('InsertUnorderedList')" title="Маркированный список">
<img src="spacer.jpg">
</td>
</tr>
</table>
<p>
<iframe width="500" height="400" id="newTextArea" name="newTextArea"></iframe>
</p>
<p>
<input type="button" onClick="Post()" value="Добавить запись" />
</p>
</div>
<script>
newTextArea.document.designMode = "on";
newTextArea.document.open();
newTextArea.document.write('TEXT');
newTextArea.document.close();
</script>
Может у кого-то есть идеи, как это реализовать... TinyMCE не пойдет... слишком громосский.. этот готов, но осталось разобраться с designMode и правкой тектов из базы |
http://mouse.org.ru/develops.html
тут есть редактор который похож на твой, в нём найдёш ответ как и каким образом |
Спасибо! Покапаю!
|
Вот так идет дело...
Есть данные в скрытом поле <input type='hidden' name='Text' id='Text' value='<?=$text;?>' /> Значение переменной $text нужно загрузить в ифрейм <iframe width="500" height="400" id="newTextArea" name="newTextArea"></iframe> Я так понимаю, это делается с помощью JavaScript, но не пойму как... |
Цитата:
|
Цитата:
чтобы текст в iframe можно было редактировать, надо сделать так, frames.message.document.designMode = "On"; чтобы перекинуть данные из формы в iframe, надо сделать так,
frames.message.document.innerText = document.getElementById('id').value;
в том редакторе это делается так,
function ShowHTML(){
document.all.im2.style.display = '';
document.all.im1.style.display = 'none';
NewHTML = frames.message.document.body.innerHTML;
document.all.Frm.style.display = 'none';
Add.NMH.value = NewHTML;
Add.NMH.style.display = 'block';
}
function ShowNormal(){
document.all.im1.style.display = '';
document.all.im2.style.display = 'none';
NewHTML = Add.NMH.value;
Add.NMH.style.display = 'none';
frames.message.document.body.innerHTML = NewHTML;
document.all.Frm.style.display = 'block';
}
|
scuter,
Спасибо! С этим понятно :) дело пошло. У меня тут еще проблема с функцией вставки гиперссылки в визуальном редакторе... Не сработывает кнопка. Само окно для оформления ссылки открывается, а ссылка не оформляется...
function OpenLink() {
var newWindowFeatures="dependent=1,Height=150,Width=430";
var board=window.open("","InsertLinks",newWindowFeatures);
board.document.open();
board.document.write("<html>");
board.document.write("<head><title>Вставка гиперссылки</title></head>");
board.document.write("<script language=Javascript>function AddLink() { AnCode = '<a href='+document.all.Protocol.value+document.all.Path.value+document.all.Target.value+'>'+window.opener.frames.newTextArea.selection.createRange().text+'</a>'; var range = window.opener.frames.newTextArea.document.selection.createRange(); range.pasteHTML(AnCode); range.select(); range.execCommand(); window.close(); }</script>");
board.document.write("<body topmargin=0 leftmargin=0>");
board.document.write("<input type=button value=Вставить OnClick=\"AddLink()\"></center>");
board.document.write("</body>");
board.document.write("</html>");
board.document.close();
}
У фрейма id="newTextArea" Не пойму, где глюк... |
http://mouse.org.ru/develops.html
реализация бросает в холодный пот banyman если у тебя для создания окошка нужно написать 11 строк кода и он больше нигде не используется то у тебя тоже с реализацие большие проблемы. Зачем вообще создавать новый гипертекстовый документ чтобы показать пользователю два или три input type="text" и кнопку добавить ссылку? почему не сделать hidden и visible? |
Цитата:
Цитата:
Выделяешь слово и прячешь под него ссылку. Функция не только добавляет ссылку, но и формирует HTML код оной... Или я твою мысль не уловил? Поясни, плизз! |
banyman, смысл в том, чтобы не открывать новое окошко и не писать в него через document.write, а подготовить все необходимое для ввода ссылки, положить в спрятанный div, а потом его показывать.
Не надо никаких всплывающих окошек. |
| Часовой пояс GMT +3, время: 17:33. |