|
|
|
| Помогите разобраться, в чем может быть дело не могу догнать!
Пробую создать небольшой визуальный редактор, в котором у меня уже есть две функции:
function FormatText(command, option)
{
frames.Org.focus();
var range = frames.Org.document.selection.createRange();
frames.Org.document.execCommand(command, false, option);
frames.Org.focus();
}
function AddHTML(AnCode)
{
frames.Org.focus();
var range = frames.Org.document.selection.createRange();
range.pasteHTML(AnCode);
frames.Org.focus();
}
|
Они отличаются только одной строчкой - где выполняется либо execCommand, либо pasteHTML (если нужно вставить html-код). Проблема у меня в том, что при execCommand, например если вставлять картинку, она встает куда надо, ориентируясь на позицию курсора. А вот в случае с pasteHTML код вставляется только в самое начало области редактора, а нужно вставить его туда, где стоит курсор или заменить выделенный текст. | |
|
|
|
|
|
|
|
для: Night_Wolf
(27.06.2008 в 15:51)
| | >>Пробую создать небольшой визуальный редактор
Простите, а что за редактор? | |
|
|
|
|
|
|
|
для: Незнайка
(27.06.2008 в 16:33)
| | IFRAME, designmode="on" | |
|
|
|
|
|
|
|
для: Night_Wolf
(27.06.2008 в 17:15)
| | >> IFRAME, designmode="on"
Я к сожалению не в курсе, что это и зачем? Нельзя ли немного подробнее объяснить? | |
|
|
|
|
|
|
|
для: Night_Wolf
(27.06.2008 в 15:51)
| | АААА. Извечная проблема wysiwyg-писателей - откройте исходник этого форума, увидите все эти функции!!!
ЗЫ: Помнится sim5 приводил отличные функции
ЗЫ2: (из исходника)
function tag(text1, text2)
{
if ((document.selection))
{
document.form.message.focus();
document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2;
} else if(document.forms['form'].elements['message'].selectionStart != undefined) {
var element = document.forms['form'].elements['message'];
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
} else document.form.message.value += text1+text2;
}
|
| |
|
|
|