Я использую tinymce 4.0.1, и он автоматически добавляет p-теги, когда вы начинаете вводить или нажимаете enter. Как я могу динамически удалить эти p-теги, а затем снова вставить содержимое в редактор.
Как я могу удалить теги p, которые автоматически добавляются в tinymce
Ответ 1
Tinymce нужен элемент корневого блока, который по умолчанию является абзацем, чтобы иметь возможность стильного контента. Поэтому удаление этих абзацев приведет только к тому, что весь контент будет обернут в один абзац, потому что tinymce вынужден использовать это как элемент корневого блока.
Ответ 2
вам нужно добавить следующую строку в инструкцию init
forced_root_block : ""
Итак, ваш полный код будет таким:
<script>tinymce.init({forced_root_block : "",selector:'textarea'});</script>
Привет!
Ответ 3
Как насчет
$("p").each(function(){$(this).parent().append($(this).html()); $(this).remove()})
Ответ 4
Вам нужно добавить следующую строку в инструкцию init.
forced_root_block : ""
Ответ 5
Вы можете удалить тег "p", добавив forced_root_block : false
в вашу настройку tinymce или вы можете скрыть строку состояния statusbar: false
Ответ 6
Можете ли вы просто настроить, что TinyMCE помещает в базу данных при ее отображении? См. Мой пост для то же самое для Rails.
var str = "{TinyMCE HTML string}"; /* however you get it */
str = str.replace(/^\<p\>/,"").replace(/\<\/p\>$/,"");
Здесь вы удаляете начальный и конечный p-тэг всего TinyMCE HTML при его отображении. Не работает с другими тэгами или конфигурацией TinyMCE.
Объяснение выражения регулярного выражения (удалено\для удобства чтения):
^<p> - find <p> at the start of the string (^) and replace it with nothing.
</p>$ - find </p> at the end of the string ($) and replace it with nothing.
Надеюсь, что это поможет.
Ответ 7
Вставьте в тему functions.php
следующий код:
add_filter('tiny_mce_before_init', 'my_switch_tinymce_p_br');
function my_switch_tinymce_p_br($settings) {
$settings['forced_root_block'] = false;
return $settings;
}
Если вы хотите заменить корневой тег "p" каким-либо другим, замените false "div" (например).
Ответ 8
Добавьте это в свой файл functions.php, и стандартные теги
будут удалены, добавив некоторые параметры в tiny_mce_before_init hook. Если вы хотите посмотреть, как это работает, вы можете прочитать дальше на этой странице: https://codex.wordpress.org/TinyMCE
////////////////////////////////////////////////////////////////////////
//////////REMOVE STANDARD <P> FROM TINYMCE EDITOR/////////////////////////
///////////////////////////////////////////////////////////////////////
function my_format_TinyMCE( $in ) {
$in['forced_root_block'] = "";
$in['force_br_newlines'] = TRUE;
$in['force_p_newlines'] = FALSE;
return $in;
}
add_filter( 'tiny_mce_before_init', 'my_format_TinyMCE' );
Ответ 9
Добавьте это только в вызов javascript:
forced_root_block : false
Ответ 10
Если вы используете jQuery, вы можете сделать:
$("p").remove();