我使用的是 tinymce 4.0.1,当您开始输入或按 Enter 时,它会自动添加 p 标签。如何动态删除这些 p 标签,然后将内容重新插入编辑器。
11 回答
您需要将以下行添加到您的 init 语句
forced_root_block : ""
因此,您的完整代码将如下所示:
<script>tinymce.init({forced_root_block : "",selector:'textarea'});</script>
Tinymce 需要一个根块元素,默认情况下是一个段落,以便能够对内容进行样式设置。因此,删除这些段落只会导致所有内容被包装到一个段落中,因为 tinymce 被迫将其用作根块元素。
forced_root_block : false
您可以通过添加到您的 tinymce 设置来删除“p”标签,或者您可以通过以下方式隐藏状态栏statusbar: false
怎么样
$("p").each(function(){$(this).parent().append($(this).html()); $(this).remove()})
仅在调用 javascript 中添加:
forced_root_block : false
您需要将以下行添加到您的 init 语句中。
forced_root_block : ""
您可以在显示时简单地调整 TinyMCE 放入数据库的内容吗?有关Rails 的相同内容, 请参阅我的帖子。
var str = "{TinyMCE HTML string}"; /* however you get it */
str = str.replace(/^\<p\>/,"").replace(/\<\/p\>$/,"");
在这里,您将在显示整个 TinyMCE HTML时删除它的开始和结束 p 标记。不会与其他 p 标签或 TinyMCE 配置混淆。
正则表达式的解释(为了便于阅读,删除了 \'s):
^<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.
希望这可以帮助。
将此添加到您的 functions.php 文件和标准
将通过向 tiny_mce_before_init 钩子添加一些参数来删除标签。如果您想了解它是如何工作的,可以在此页面上进一步阅读: 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' );
您在寻找:forced_root_block:'',force_br_newlines:true,force_p_newlines:false,
在主题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”(例如)。
如果你使用 jQuery 可以这样做:
$("p").remove();