Редактирование ‹html›, ‹head›, ‹body› и т. д. в редакторе WYSIWYG

Я использую редактор WYSIHTML5: http://xing.github.io/wysihtml5/

Этот редактор добавляет iFrame на страницу и обновляет текстовое поле всякий раз, когда вы вносите изменения в contenteditable тело iFrame. Это похоже на многие другие редакторы WYSIWYG, поэтому моя проблема должна относиться к другим редакторам.

Моя проблема в том, что я хочу иметь возможность редактировать <html>, <head>, <body> и другие важные базовые теги через этот редактор. Вы, очевидно, не можете редактировать их в режиме WYSIWYG, поэтому режим необработанного кода будет в порядке.

Когда я включаю эти теги, они удаляются самим браузером, потому что эти теги уже были открыты страницей в самом iFrame. Поэтому, когда я переключаюсь между необработанным кодом и режимами WYSIWYG, они теряются.

Я использую «расширенные» правила парсера по умолчанию и объединяю их с этими: http://pastebin.com/6QvYkqm4 с рекурсивный $.merge() jQuery.

Как обойти это, но при этом использовать этот подключаемый модуль? Я неправильно настроил плагин? Я уверен, что включил теги в правилах синтаксического анализатора.


person Jared    schedule 25.09.2013    source источник
comment
разделить на (/‹body/i)[1] и (/\/body›/i)[0] для заполнения редактора, а затем объединить их для сохранения. вы можете отредактировать заголовок в текстовой области или избежать объектов xml и отредактировать в div contenEditable. Я рекомендую текстовое поле для простоты. общее редактирование как html-переключатель для вашего wysiwyg-редактора удобно для работы разработчиков.   -  person dandavis    schedule 02.10.2013


Ответы (2)


Я настоятельно рекомендую вам использовать в качестве редактора текстовой области JQuert TE WYSIHTML, хотя даже он содержит ошибки, но по сравнению со многими другими он намного лучше. .

Библиотеки JavaScript, с помощью которых создаются редакторы WYSIHTML, ищут эти теги и удаляют их, потому что это является недостатком безопасности, и это, вероятно, исказит макет сайта, если его оставить. Представьте, что пользователь меняет заголовки страницы. Если вы действительно хотите реализовать эту функцию, я бы посоветовал вам найти код, который удаляет эти теги в библиотеке WYSIHTML5, и изменить его, чтобы он не распознавал эти конкретные теги. Удачи.

Редактировать:

Пример: В папке parser_rules WYSIHTML5 выберите advanced.js или basic.js (зависит от того, что вы используете), найдите:

"head": {
        "remove": 1
},

заменить:

"head": {
        "rename_tag": "head"
    },

Повторяйте этот процесс с другими правилами, пока не получите желаемый набор правил. Все редакторы текстовых областей WYSIWYG имеют разные библиотеки JavaScript, но та, которую вы используете, достаточно проста для редактирования.

person Community    schedule 02.10.2013
comment
это не библиотеки js wysiwiwyg, которые удаляют голову и тело, это парсер html браузера... - person dandavis; 02.10.2013

Редактор WYSIWYG — это не то решение, которое вы ищете, поскольку вы не можете «видеть» (форматировать со стилями) head или разметку страницы. Вы должны взглянуть на http://codemirror.net/

страница с примером HTML

person zyglobe    schedule 05.10.2013