新的TINYMCE(版本4)允许使用:
paste_as_text: true
问题是这使得所有浆料都能转换为纯文本。我可以这样做:当用户将内容直接粘贴到内容时,它将始终清理内容并将其转换为纯文本但是如果用户按下按钮会出现一个对话框,这样用户就可以在此对话框中粘贴内容并使用不会“触摸”它,它会直接粘贴到编辑器上。
实际上这是3.X版本的默认行为,你可以有一个特定的PASTE FROM WORD按钮(它实际上适用于你想要粘贴的任何东西)所以你冷却粘贴来自word的内容并且它不会被转换纯文本。
我看到有一个来自tinymce的外部“强大的粘贴插件”,但它不是免费的,所以如何在不购买插件的情况下解决这个问题?
编辑:
即使将事件附加到粘贴过程,我也无法像这样动态更改paste_as_text,例如:
tinymce.settings.paste_as_text = false;
我可以在我的代码中执行该行而没有错误但它没有产生任何影响,我继续无法粘贴内容而不简化为纯文本。
答案 0 :(得分:1)
默认情况下加载paste
插件时,会在“编辑”菜单中添加两个项目:
...所以你想要的是paste
插件的标准部分。在TinyMCE 4中,它通过编辑菜单而不是工具栏暴露。
编辑#1:如果您将pastetext
按钮添加到工具栏中,您可以在粘贴为文本和常规粘贴之间切换粘贴功能。该按钮切换粘贴事件上发生的行为。它的行为与TinyMCE 3中的行为完全不同(您在问题中描述的行为)。
编辑#2 - 以编程方式更改此行为
您可以使用代码切换此设置,但需要几个不同的调用才能获得所需内容。
首先,您需要确定粘贴插件的当前“模式”。为此,您可以使用:
tinymce.activeEditor.plugins.paste.clipboard.pasteFormat
这将(基于当前的TinyMCE版本4.6.5)返回三个值中的一个:"html"
,"text"
或undefined
。我相信它始终以undefined
开始,直到您启动切换一次。
如果要将行为切换到其他模式,可以执行以下操作:
tinymce.activeEditor.execCommand('mceTogglePlainTextPaste');
请注意,这是一个切换 - 所以无论它设置为什么,都会切换到相反的模式。没有暴露的方法调用可用于将其强制为一种模式或另一种模式。