TinyMCE:Enter上的新行,双行的新段落输入?

时间:2018-03-19 16:10:51

标签: javascript jquery wysiwyg tinymce-4

我正在使用TinyMCE v4

如果我在短信中按Enter键,看起来我已按两次输入: enter image description here

这是生成的源代码:

ProducerGUID

如果按Enter键+ shift,则按新行 enter image description here

那就是生成的源代码:

<p>Test Line one</p>
<p>this is the next line after pressing enter</p>

是否可以通过这种方式更改编辑器,单个返回创建中断<p>Test Line one<br />this is the next line after pressing enter</p> 并且双返回创建新段落<br> 所以总之我们会改变

  • Shift + Enter =&gt;按一下
  • 输入=&gt;按两次输入

这与<p>的行为相同,因此对于实际使用WYSIWYG编辑器的人来说是一件好事。

我发现唯一的选项是forced_root_block来交换命令,因此请输入创建LibreOffice Writer并切换+输入已创建的<br>。然而,对于非开发人员用户来说,这也是非常令人困惑的,并且还有一个警告,应该避免这种情况:

  

请注意,不使用p元素作为根块会严重削弱   编辑器的功能。

1 个答案:

答案 0 :(得分:0)

我正在浏览INBOX文件,我认为我发现了处理tinymce.js关键事件的主要代码:

enter

并将其替换为:

var insert$3 = function (editor, evt) {
    $_3fpic86uje5o2r2r.getAction(editor, evt).fold(function () {
        $_1esduy3wje5o2qhl.insert(editor, evt);
    }, function () {
        $_54gcs16qje5o2r1x.insert(editor, evt);
    }, $_enfhkv6je5o2ply.noop);
};

var insert$3 = function (editor, evt) { $_3fpic86uje5o2r2r.getAction(editor, evt).fold(function () { //this seems to be where Shift + Enter was being run }, function () { if (editor.lastKeyPressed === 13) $_54gcs16qje5o2r1x.insert(editor, evt); else $_1esduy3wje5o2qhl.insert(editor, evt); }, $_enfhkv6je5o2ply.noop); }; 的值来自:

editor.lastKeyPressed

将以前的块添加为init函数的参数,找到它here

所以:

  • Shift + Enter 按一次
  • 输入 按两次输入

我知道这是一个黑客攻击,但我希望它能让你走上更优雅的解决方案