slach
При формировании загружаемого документа добавляю
PHP:
<link href="/path/to/file.css" rel="stylesheet" type="text/css">
Под стилем подразуемеваю название класса css.
Название класса для selection меняю так
PHP:
function ParagraphStyle_onchange(option) {
var tagname = classname = '';
if (option.value != null && option.value != '') {
range = tbContentElement.DOM.selection.createRange();
pNode = range.parentElement();
if (range.text != null) {
if (option.value == 'DelFormat') {
range.execCommand('RemoveFormat', null, null);
return true;
} else if (option.value == 'Unlink') {
range.execCommand('Unlink', null, null);
return true;
} else if (option.value == 'Br') {
range.pasteHTML('<br/>');
return true;
} else if (option.value == 'DelHtml') {
if (tbContentElement.DOM.selection.type == 'Text') {
var range = tbContentElement.DOM.selection.createRange();
var pNode = range.parentElement();
clearHtml(pNode);
}
return true;
}
// Если указано имя элемента и стиль
if (option.value.indexOf('.') > -1) {
tagname = option.value.split('.')[0];
classname = option.value.split('.')[1];
} else {
tagname = option.value;
}
// Если родительский тег равен указанному в правиле, то устанавливаем стиль для него
if (pNode.nodeName != 'BODY') {
if (pNode.nodeName == tagname) {
pNode.className = classname;
} else {
var code = range.htmlText;
if (tagname != '' && classname != '') {
code = '<' + tagname + ' class="' + classname + '">' + range.htmlText + '</' + tagname + '>';
} else if (tagname != '' && classname == '') {
code = '<' + tagname + '>' + range.htmlText + '</' + tagname + '>';
} else if (classname != '' && tagname == '') {
code = '<span class="' + classname + '">' + range.htmlText + '</span>';
}
range.pasteHTML(code);
range.select();
range.execCommand();
}
}
}
}
tbContentElement.focus();
}
При это происходит следующее, ссылки изменяют свое отображение в редакторе согласно новому классу, а элементы типа p, h* не изменяют т.е. если они при загрузке документа в редактор были в Times New Roman, то после изменения на css класс в котором указан отличный от текущего font-family, внешне ничего не меняется... хотя если смотреть на фронтенде, то изменения видны.
-~{}~ 05.08.04 19:42:
Если добавлять таблицу стилей нужно при помощи DOM, как говорит MiRaClE, то не понимаю почему изменения класса на ссылках отрабатывает нормально.
-~{}~ 06.08.04 19:50:
Страно...
Если таблицу стилей вставлять прямо в загружаемый документ, то все работает как надо...
В чем грабли?