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, время: 17:15. |