我正在尝试构建一个前端页面,以允许我的用户使用smarty wysiwyg编辑器构建ckeditor模板。
我使用insertHtml函数添加一个具有特殊属性的按钮(需要将其解析为后端的smarty变量):
// initialize ckeditor
$('textarea.editor').ckeditor({
contentsCss: '/css/test.css'
});
// get ckeditor instance
ckeditorInstance = $('textarea.editor').ckeditorGet();
// Use some elements (outside the textarea) to add buttons/tokens
// to wysiwyg textarea
$("a.tinymce.tinymce-insert-var").click(function(){
ckeditorInstance.insertHtml(
'<input type="button" readonly="readonly" var="{$user->name}" '
+ 'class="placeholder" value="User Name" />'
);
});
这适用于Firefox,IE8和Opera,但使用Chrome / Chromium / Safari时,按钮会插入<p>
元素之间。
有没有办法避免这种情况,或者我可以用来删除段落的回调?
答案 0 :(得分:2)
我也有这个问题。我就这样做了......
var editor = $('textarea[name=content]').ckeditorGet();
var element = CKEDITOR.dom.element.createFromHtml( '<p>I am a new paragraph</p>' );
editor.insertElement( element );
答案 1 :(得分:0)
看起来你也在使用jQuery ...为什么不强制在CKEditor的.insertHtml函数中包含p标签,然后用jQuery的.unwrap跟进它以始终删除p标签?
答案 2 :(得分:0)
在主ckeditor配置文件中有一个选项可以禁用自动&lt; p&gt;插入。 尝试将CKConfig.EnterMode和CKConfig.ShiftEnterMode的值更改为'br'。
菲利克斯