2013-01-24 74 views
2

我已經安裝了django-tinymce,並在我的應用程序中使用了HTMLFielddjango-tinymce HTMLField - 在管理員中以純文本格式粘貼

我試圖在django管理中產生某種'粘貼爲純文本'的功能。我想從MS Word,HTML標籤格式化,以及當用戶做ctrl + v/cmd + v /右鍵單擊>粘貼等時刪除了很多東西。

我可以看到很多人在談論它,但我可以似乎沒有任何工作。作爲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()'但也不能工作。

我似乎花了很多年,我沒有真正取得進展 - 我不知道爲什麼我的函數被調用,現在它不是 - 瀏覽器的調試工具沒有收到任何錯誤。

+0

看看:http://www.tinymce.com/wiki.php/Plugin:paste – Brandon

+0

+1好問題 – Thariama

+0

感謝布蘭登,我在下面的解決方案中包含了您的鏈接。 –

回答

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 

} 

我發現paste plugin documentationThariama's answer對SO都非常豐富。

1

您可能想要考慮使用使用專門功能的清晰方法。 看看這個SO問題:TinyMCE Paste As Plain Text

+1

謝謝Thariama。從我+1(這裏和你的鏈接的答案)。 –

+0

thx,我很高興能夠提供幫助 – Thariama