Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Альтернативная реализация execCommand('BackColor') (https://javascript.ru/forum/events/10188-alternativnaya-realizaciya-execcommand-%27backcolor%27.html)

googlebot 22.06.2010 21:55

Альтернативная реализация execCommand('BackColor')
 
Скажите, есть ли аналог реализации команды BackColor метода execCommand для браузеров отличных от IE?

пример для IE:
эта функция подсвечивает выделенный текст в документе (без привязки к идентификатору).

function selectText(){
	var path, select = document.selection.createRange().text;
	if(select){
		path = document.body.createTextRange();
		for(i=0; path.findText(select); i++){
			path.execCommand('BackColor','','#000000');
			//...
		}
	}
}

Octane 23.06.2010 06:04

hilitecolor

А вообще лучше написать универсальную функцию inline-форматирования, которая будет работать следующим образом:
1. Выполняет execCommand("FontName", false, "fake").
2. Находит в тексте все образовавшиеся <font face="fake">…</font>.
3. Заменяет эти font'ы на <span style="…">…</span> с необходимыми стилями (ну или если возможно, лучше использовать CSS-классы).

googlebot 23.06.2010 08:36

с этим все понятно, но...
Цитата:

Сообщение от Octane
1. Выполняет execCommand("FontName", false, "fake").
2. Находит в тексте все образовавшиеся <font face="fake">…</font>.
3. Заменяет эти font'ы на <span style="…">…</span> с необходимыми стилями (ну или если возможно, лучше использовать CSS-классы).

непонятно только как мне выделение в <font face="fake">…</font> обрамить, через document.createElement()?

Octane 23.06.2010 08:42

Цитата:

Сообщение от googlebot
непонятно только как мне выделение в <font face="fake">…</font> обрамить, через document.createElement()?

не понял вопрос

googlebot 23.06.2010 10:14

для того чтобы найти <font face="fake">…</font>, их нужно создать до этого? я просто сам недопонял:)

Octane 23.06.2010 10:18

их создаст команда execCommand("FontName", false, "fake")

googlebot 23.06.2010 10:38

я в начале то и подумал, что вы это имеете в виду, но до этого я читал что execCommand("FontName", false, "fake") только IE понимает...
тогда спасибо, вопрос снят

Octane 23.06.2010 10:58

execCommand в других браузерах работает только в WYSIWG-режиме.


Часовой пояс GMT +3, время: 10:28.