Drupal 7 / TinyMCE 3.5.8:paste_preprocess 回调不是 运行

Drupal 7 / TinyMCE 3.5.8: paste_preprocess callback not running

通过 Wysiwyg 模块包含带有 TinyMCE 的 Drupal 7。 "Paste" 在所见即所得配置屏幕中启用。编辑器通常工作正常,但现在我正在尝试修改 TinyMCE 的粘贴功能以从 HTML 标签中删除所有属性。 (客户要求,不要问。)

已将以下内容添加到模块文件中:

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 Paste 插件——没有被加载。所以看起来问题出在 Drupal,而不是 TinyMCE。

如果能帮助 Drupal 正确加载 TinyMCE 插件,我们将不胜感激。

确保确实加载了 "paste" TinyMCE 插件。出于某种原因,在 Drupal 中 "Buttons and Plugins" 下有一个条目,标题为 "Paste"。但是,这不会启用发生粘贴预处理回调所需的 "paste" 插件。

相反,请确保 "Paste Text" 或 "Paste from Word" 已启用。这应该会导致加载 "paste" 插件,并发生粘贴预处理回调。