2016-01-14 82 views
0

Drupal 7包含通過Wysiwyg模塊包含的TinyMCE。 「粘貼」在Wysiwyg配置屏幕中啓用。編輯器一般工作正常,但現在我試圖修改TinyMCE的粘貼功能,從HTML標籤中去除所有屬性。 (客戶要求,不要問。)Drupal 7/TinyMCE 3.5.8:paste_preprocess回調未運行

添加了以下的模塊文件:

function MYMODULE_wysiwyg_editor_settings_alter(&$settings, $context) { 
    if ($context['profile']->editor == 'tinymce') { 
     drupal_add_js(drupal_get_path('module', 'MYMODULE').'/js/tinymce_callbacks.js'); 

     $settings['paste_preprocess'] = 'MYMODULE_tinymce_paste_preprocess_callback'; 
    } 
} 

,並創造了tinymce_callbacks.js具有以下內容:

function MYMODULE_tinymce_paste_preprocess_callback(pl, o) { 
    alert(o.content); 
    o.content = "-: CLEANED :-\n" + o.content; 
} 

實際的TinyMCE粘貼按鈕僅適用於IE,但ctrl-V快捷方式適用於所有瀏覽器。但是,回調不會被調用。

我做了一些挖掘。 paste_preprocess設置肯定會被添加到正確的JavaScript對象中,但唯一引用它的代碼 - TinyMCE粘貼插件 - 未被加載。所以看起來問題在於Drupal,而不是TinyMCE。

獲得Drupal正確加載TinyMCE插件的任何幫助都將非常感謝。

回答

1

確保「粘貼」TinyMCE插件實際上正在加載。出於某種原因,在Drupal中,在「按鈕和插件」下有一個名爲「粘貼」的條目。但是,這不會啓用粘貼預處理回調所需的「粘貼」插件。

相反,請確保啓用「粘貼文本」或「從Word粘貼」。這應該導致「粘貼」插件加載,併發生粘貼預處理回調。