Firefox 3.03 и contentEditable - PullRequest
       12

Firefox 3.03 и contentEditable

3 голосов
/ 18 октября 2008

Я использую атрибут contentEditable для элемента DIV в Firefox 3.03. Установка его в true позволяет мне редактировать текстовое содержимое DIV, как и ожидалось.

Затем, когда я установил contentEditable в "false", div больше не редактируется, также, как и ожидалось.

Однако мигающая каретка (курсор ввода текста) остается видимой, даже если текст больше не редактируется. Символ каретки теперь также виден, когда я нажимаю на большинство другого текста на той же странице, даже в обычных текстовых абзацах.

Кто-нибудь видел это раньше? Есть ли способ заставить карету спрятаться?

(Когда я изменяю размер браузера или щелкаю в другом приложении и возвращаюсь, курсор волшебным образом исчезает.)

Ответы [ 3 ]

6 голосов
/ 18 октября 2008

Я имел дело с этим, и мой обходной путь очищает выбор, когда я отключаю contentEditable:

if ($.browser.mozilla) { // replace with browser detection of your choice
  window.getSelection().removeAllRanges();
}

Я на самом деле удаляю атрибут "contenteditable" для браузеров, отличных от IE, вместо того, чтобы установить его в false:

if ($.browser.msie) {
  element.contentEditable = false;
}
else {
  $(element).removeAttr( 'contenteditable' );
}

Браузеры непостоянно управляют атрибутом contentEditable, и мое тестирование показало, что в целом это работает лучше. Я не помню, способствовало ли это решению проблемы с кареткой, но я добавлю это на всякий случай.

0 голосов
/ 25 сентября 2013

Это решает проблему, похоже, Firefox просто проверяет, является ли это собственным способом сделать что-то: P

 getDoc().designMode  = "off";
0 голосов
/ 10 июня 2010

Атрибут стиля -moz-user-input можно использовать в Firefox для получения работоспособности contenteditable=false.
Присвоенное значение определяет, принят ли пользовательский ввод. Возможные значения

none     : The element does not respond to user input.
enabled  : The element can accepts user input. This is default.
disabled : The element does not accept user input.

Например:

// to disallow users to enter input
<asp:TextBox ID="uxFromDate" runat="server" style="-moz-user-input: disabled;"></asp:TextBox>

// to allow users to enter input
<asp:TextBox ID="uxFromDate" runat="server" style="-moz-user-input: enabled ;"></asp:TextBox>

Подробнее см. https://developer.mozilla.org/en/CSS/-moz-user-input.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...