2

我在我的应用程序中安装了 django-tinymce 和各种模型,带有HTMLField.

我正在尝试在 django 管理员中生成某种“粘贴为纯文本”功能。当用户执行 ctrl + v / cmd + v / 右键单击​​ > 粘贴等操作时,我希望从 MS Word、HTML 标记和几乎所有其他内容中删除格式。

我可以看到很多人在谈论它,但我似乎无法得到任何工作。作为 django-tinymce,我TINYMCE_DEFAULT_CONFIGsettings.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()'但这也不起作用。

我似乎在这方面花了很长时间,但我并没有真正取得任何进展——我不知道为什么我的函数被调用,现在不是——浏览器的调试工具没有发现任何错误。

4

2 回答 2

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

}

我发现粘贴插件文档Thariama对 SO 的回答都非常有用。

于 2013-01-25T09:43:07.800 回答
1

您可能需要考虑使用使用专门功能的清晰方法。看看这个 SO 问题:TinyMCE 粘贴为纯文本

于 2013-01-25T09:08:12.740 回答