我正在尝试使用TinyMCE(版本4.1.2)作为WYSIWYG编辑器。登录用户可以编写自己的页面,并直接查看访问者访问时页面上显示的内容。
现在,我想直接存储html。例如:
登录用户看到This is my text!
,但实际上TinyMCE会将其显示为<p>This is my text!</p>
。还有某些样式,如<h1>
和可添加的链接。
现在,用户可以插入超链接,提供应显示的链接和文本。但问题是,如果用户手动编写<a href='example.com'>Example</a>
,它会在编辑器中显示,但也会以纯HTML格式存储,因此在显示时,它只是一个带有文本Example
的超链接。 / p>
这是我的代码类似的样子(省略配置):
tinymce.init({
setup: function(editor){
editor.on('change', function(e){
$('[name="'+editor.id+'"]').next("textarea").html(editor.getContent({format: 'html'}));
});
}
});
因此,TinyMCE字段中的文本会被复制到<textarea>
内的<form>
,该<h1>Title</h1>
<p><a href="example.com">example</a></p>
<p><a href="example.com">test</a></p>
会在保存时提交。
这样的事情:
存储为:
editor.getContent({format: 'html'})
这使我无法区分真正的链接和纯文本,因此我无法在存储数据后对其进行处理。
我已经摆弄了format: 'raw'
格式选项,例如{{1}},但无济于事。我做错了什么?
答案 0 :(得分:1)
希望我能正确理解你的问题。
看起来你想要显示用户在输入时输入的内容,而不是实际处理用户用HTML编写的任何HTML。我对么? 我相信这可以解决您遇到的问题:
https://kokoblog.net/php/fix-tinymce-auto-convert-html-code-to-element-tag
但是,如果您只关心它的存储位置,而不是它处理过程中的外观,那么您需要向tinyMCE添加代码块,并确保您的用户明白他们需要选择代码选项,只要他们要编写原始HTML。
style_formats : [{title : 'Code', inline : 'code'}]
src:Add "code" button to wordpress tinyMCE
我希望这有帮助! :)