Используйте rangy.cssClassApplier, чтобы применить класс к строке - PullRequest
0 голосов
/ 28 октября 2011

Как я могу использовать rangy.cssClassApplier, чтобы применить класс к строке? Спасибо

1 Ответ

1 голос
/ 28 октября 2011

Вы не можете напрямую. Аппликаторы класса Rangy CSS работают только на DOM.

Вместо этого вы можете добавить строку HTML во временный элемент, применить класс CSS и удалить его снова.

Живая демоверсия: http://jsfiddle.net/Ta3ta/

Код:

function applyCssClassToHtml(cssClass, html) {
    rangy.init();
    var cssClassApplier = rangy.createCssClassApplier(cssClass);
    var div = document.createElement("div");
    div.innerHTML = html;
    document.body.appendChild(div);
    var range = rangy.createRange();
    range.selectNodeContents(div);
    cssClassApplier.applyToRange(range);
    range.detach();
    document.body.removeChild(div);
    return div.innerHTML;
}

var html = applyCssClassToHtml("someClass", "Hello <b>world</b>");
...