2016-01-14 95 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粘贴”。这应该导致“粘贴”插件加载,并发生粘贴预处理回调。