Проблемы TinyMCE с изменяемым размером содержимого в IE8

Обновление: После публикации на форуме TinyMCE (что-то, что я должен был сделать, прежде чем предлагать награду), основная проблема может быть решенным, но я все еще очень открыт для всего, что касается других вопросов, как отключить поведение с изменяемым размером (номера 2 и 3 в конце сообщения).


У меня возникли проблемы с сохранением содержимого с помощью TinyMCE в IE8 (не в других версиях).В IE некоторые элементы в редакторе имеют ручки в каждом углу и перетаскиваемые «границы», и когда вы фокусируетесь, чтобы начать редактирование, может появиться полосатая граница:

enter image description here

Проблема:

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

Я использую пакет jQuery TinyMCE 3.4.6, у меня нет такого поведения в других браузерах.


Обновление:

Я немного сузил причину проблемы и обнаружил несколько вещей:

  • Проблема возникает с или без сборки jQuery, и не зависит от того, какие плагины tinymce находятся в использовать.
  • Кажется, что более толстая «граница» появляется только тогда, когда к элементу применена (минимальная) высота / ширина, объявленная встроенной или из внешнего CSS.
  • Используя IETester , я получал ошибки, которые утверждали, что «длина» равна нулю или не является объектом при потере фокуса активного элемента; т.е. когда вы щелкаете в любом месте за пределами редактора TinyMCE.

    enter image description here

    Я не видел этой ошибки при истинной установке IE8 (в настоящее время я не могу получить к ней доступ), однако: в этом есть некоторый смысл, учитывая проблему и обходной путь, указанные выше. Мне пришлось дважды нажать «Отправить» и отклонить предупреждения, чтобы отправить форму в IETester.

  • Эти границы и ручки будут фактически выходить на за пределы редактора / iframe: enter image description here

Я создал живую демо-версию , вот содержание из этого:





/* Content of test.css */ p { min-height: 24px; /* this line makes the handles appear */ background-color: #f00; color: #fff; }

Как воспроизвести:

  1. Откройте демонстрацию в IE8
  2. Щелкните существующий абзац, должна появиться небольшая граница в 1 пиксель, и вы не сможете редактировать текст.
  3. Щелкните элемент еще раз, теперь появляется толстая рамка и текст можно редактировать.
  4. Введите несколько символов, затем нажмите кнопку «Отправить». Обновление не будет отправлено с данными $ _ POST . Если щелкнуть другую область внутри редактора, удалив толстую рамку, данные будут отправлены нормально.

Вопросы / проблемы:

  1. Важно: Как я могу получить форму для публикации отредактированного текста, не требуя от пользователя обходного пути?

    Обновление: Кажется, эта проблема решена в недавний коммит от ведущего разработчика TinyMCE. Мне все еще не удалось протестировать реальную установку IE8, но это сработало и заглушило ошибки в IETester.

  2. Менее важно: Есть ли способ полностью предотвратить или удалить ручки и перетаскиваемые края? Я предполагаю, что это связано с реализацией IE contentEditable , а не с TinyMCE, и может даже не быть причиной проблемы.

  3. Extra : Как я могу предотвратить распространение этих дескрипторов за пределы редактора?

7
задан Wesley Murch 19 October 2011 в 14:27
поделиться