我已经在我的应用中安装了django-tinymce并使用HTMLField
。
我正在尝试在django admin中生成某种“粘贴为纯文本”功能。我想要从MS Word,HTML标签以及用户执行ctrl + v / cmd + v /右键单击>时删除的其他任何内容进行格式化。粘贴等。
我可以看到很多人在谈论它,但我似乎无法得到任何工作。作为django-tinymce,我正在TINYMCE_DEFAULT_CONFIG
settings.py
中完成所有这些工作。
我以为我有它的工作 - 我已经覆盖了基本管理模板,以包含一个带有以下功能的js文件(我不记得该功能的用户 - 可能是SO上的人) -
function tinymcePastePlainText() {
var ed = tinyMCE.get(0);
ed.pasteAsPlainText = true;
//adding handlers crossbrowser
if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) {
ed.onKeyDown.add(function (ed, e) {
if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45))
ed.pasteAsPlainText = true;
});
} else {
ed.onPaste.addToTop(function (ed, e) {
ed.pasteAsPlainText = true;
});
}
}
然后设置我的默认配置 -
TINYMCE_DEFAULT_CONFIG = {
'plugins': "'paste'",
'paste_text_sticky': "true",
'paste_retain_style_properties': "",
'oninit': "tinymcePastePlainText",
#...Further config
}
这似乎是我上次看到我想做的事情,但它现在停止了工作 - 在浏览器中调试似乎表明tinymcePastePlainText()
函数永远不会运行(虽然它已加载)。
我尝试过各种其他方法,例如将配置设置为 -
TINYMCE_DEFAULT_CONFIG = {
'plugins': "'paste'",
'paste_auto_cleanup_on_paste': 'true',
'paste_remove_styles': 'true',
'paste_remove_styles_if_webkit': 'true',
'paste_strip_class_attributes': 'true',
#....further config
}
(似乎没有任何改变)。或者
TINYMCE_DEFAULT_CONFIG = {
'plugins': "'paste'",
'setup': "function(ed) { ed.onInit.add(function(ed) {ed.pasteAsPlainText = true;});",
#....further config
}
我尝试从单独的js文件中加载上面的函数,然后在我的配置中包含函数名称 - 'setup': 'pasteAsPlainTextFuncion()'
,但这也不起作用。
我似乎花了很多时间在这上面,而且我并没有真正取得任何进展 - 我不知道为什么我的函数被调用,现在它不是 - 浏览器的调试工具没有发现任何错误
答案 0 :(得分:1)
您可能需要考虑使用特殊功能的清晰方法。 看看这个SO问题:TinyMCE Paste As Plain Text
答案 1 :(得分:1)
真气! - 出于某种原因,我在行上都应用了单引号和双引号 - 'plugins': "'paste'",
。粘贴插件没有加载。我不知道如何,为什么或何时这样做。
对于其他试图做同样事情的人(我使用的是django 1.4.3和django-tinymce 1.5.1b2)。我设法获得一些基本的“粘贴为纯文本”功能(默认情况下),而无需在任何地方使用javascript回调。我只是使用了以下设置 -
TINYMCE_DEFAULT_CONFIG = {
'plugins': "paste",
'paste_remove_styles': 'true',
'paste_remove_styles_if_webkit': 'true',
'paste_strip_class_attributes': 'all',
#... further config
}
我发现SO上的paste plugin documentation和Thariama's answer都非常有用。