2010-06-21 2 views
5

Я пытаюсь использовать contenteditable и styleWithCss.webkit stylewithcss contenteditable не работает?

Он не работает в webkit.

В любое время, когда я использую execCommand, он генерирует <b>, а не ожидаемый диапазон.

Вот демо: http://jsbin.com/izomo/2/edit

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

Является ли это ошибкой или я делаю что-то неправильно.

спасибо.

ответ

2

Кажется, что все работает по назначению. См. Bug 13490 на WebKit BugZilla.

EDIT: Поддержка styleWithCSS был добавлен источник WebKit в changeset 40560, 03 февраля 2009

Тем не менее, кажется, что с тех пор, независимо от того, что, styleWithCSS всегда устанавливается в false, в то время как перед изменением команды стиля всегда применялись с CSS, как будто styleWithCSS существовал, но всегда был установлен на true.

Я даже пытался переписывать document.execCommand строку следующим образом, в соответствии с Mozilla documentation:

document.execCommand("styleWithCSS", true, null); 
document.execCommand("bold", false, null); 

Эти модифицированные команды по-прежнему работают в Firefox, но не в любом Chrome 5 или Safari 5 (как на Windows, и установлена Cегодня).

Итак, похоже, что это ошибка WebKit.

+0

Это для stylewithcss ложь, я пытаюсь сделать stylewithcss истинный. – Mark

+0

D'oh! Хорошо. Я возьму погружение. –

+0

Такая же ошибка как оригинальная, но теперь в противоположном направлении? Я обновил свой ответ после нескольких исследований.Я думаю, что добавление поддержки 'styleWithCSS' должно было сделать его настраиваемым, но оно застряло в состоянии по умолчанию, которое является' false'. (См. [Editor.cpp: 940] (http://trac.webkit.org/browser/trunk/WebCore/editing/Editor.cpp?rev=61418#L940).) –

1
document.execCommand("styleWithCSS", true, null); 
document.execCommand("bold", false, null); 
10

Мне не удалось заставить это работать с командами в обоих ответах здесь. Для тех, кто все еще стучит головой, проблема заключается в том, как заставить его работать.

Мы можем пройти три значения ExecCommand

document.execCommand(command, uiElement, value) 

Как детали отлично Ответ Кристофера значение «styleWithCSS» устанавливается в ложь по умолчанию просто попробовать:

alert(document.queryCommandState("styleWithCss")); 

Чтобы установить его true, вам необходимо передать третий аргумент, значение «значение» равно true. Как это:

document.execCommand("styleWithCSS", null, true); 

Это работает как в Firefox и Chrome