Браузер TinyMCE "исправляет" - PullRequest
3 голосов
/ 20 июля 2011

Я получаю ошибку JavaScript в Firefox и Opera при использовании TinyMCE:

j is null
(function(d){var a=/^\s*|\s*$/g,e,c="B...a.selection.onSetContent.add(f)})}});

Эта ошибка появляется после того, как я сохраняю содержимое текстовой области во 2-й раз, 3-й раз и т. Д. При первом сохранении ...

Так как он работает нормально в других браузерах (IE и Chrome), я предполагаю, что проблема в исправлениях "TinyMCE", которые Opera и, вероятно, Firefox тоже работают ...

Можно ли как-то помешать этим браузерам применить эти исправления? В любом случае, мне кажется смешным, что браузер пытается исправить сторонний скрипт

1 Ответ

2 голосов
/ 20 июля 2011

это маленькая ошибка.Внутри кода tinymce используется <span id="mce_marker"></span> для запоминания позиции каретки при вставке.при проверке полученного фрагмента после вставки диапазон считается недействительным и удаляется, таким образом нарушая код, удаляя маркер.Эта проблема будет исправлена ​​в следующем официальном выпуске.Есть несколько способов решения этой проблемы.Одним из них является добавление атрибутов id и mce-data-type к spans в качестве допустимых элементов (установка init) .Пример:

// The valid_elements option defines which elements will remain in the edited text when the editor saves.
    valid_elements: "@[id|class|title|style]," +
    "a[name|href|target|title]," +
    "#p,-ol,-ul,-li,br,img[src],-sub,-sup,-b,-i,-u," +
    "-span[data-mce-type]",
...