WYSIWYG-редактор
пишу свой редактор... есть проблема со вставкой отфарматированного выделения обратно во фрейм... вот код
function AddLink() {
var notIE = (window.addEventListener) ? true : false;
var iframe = window.opener.document.getElementById('message');
if (notIE) {
AnCode = '<a href=' + document.getElementById('protocol').value + document.getElementById('path').value + '>' + iframe.contentWindow.getSelection() + '</a>';
alert(AnCode);
var range = iframe.contentWindow.getSelection().getRangeAt(0);
range.insertNode(AnCode);
range.execCommand();
}
else {
var AnCode = '<a href=' + document.all.protocol.value + document.all.path.value + '>' + window.opener.frames.message.document.selection.createRange().text + '</a>';
alert(AnCode);
var range = window.opener.frames.message.document.selection.createRange();
range.pasteHTML(AnCode);
range.execCommand();
}
window.close();
}
работает только в IE... проблема в pasteHTML для Mazilla и Opera данная функция вставляет ссылку помогите пожалуйста.... |
document.all - только для IE и Opera! не используйте это никогда!
статья по теме: http://2007.fastcoder.ru/articles/?aid=609 |
надо было просто для Mazilla сделать так iframe.contentWindow.document.execCommand('insertH TML', false, AnCode);
|
но все равно спасибо, я больше не использую document.all...
есть еще вопрос по теме... вот у меня есть код который обрамляет выделение тегом с классом:
function InsertDate(message, start_tag, end_tag) {
if (document.getSelection) {
var iframe = document.getElementById('message');
var selection = iframe.contentWindow.getSelection().getRangeAt(0);
var date = '<span class="date">' + selection + '</span>';
iframe.contentWindow.document.execCommand('insertHTML', false, date);
}
else {
iframe = frames.message;
selection = iframe.document.selection.createRange().text;
range = iframe.document.selection.createRange();
date = '<span class="date">' + selection + '</span>';
range.pasteHTML(date);
range.select();
}
iframe.focus();
}
теперь я хочу чтобы у меня была возможность отменить это форматирование... есть кнопка, на которую я повесила вот эту функцию:
function DeleteDate() {
if (document.getSelection) {
var iframe = document.getElementById('message');
iframe.contentWindow.document.execCommand('RemoveFormat', false, true);
}
else {
iframe = frames.message;
var selection = iframe.document.selection.createRange().text;
var range = iframe.document.selection.createRange();
range.execCommand('RemoveFormat', false, true);
}
iframe.focus();
}
но увы она не работает в IE... подскажите, что не так... |
| Часовой пояс GMT +3, время: 12:36. |