0

通过所见即所得模块包含带有 TinyMCE 的 Drupal 7。“粘贴”在所见即所得的配置屏幕中启用。编辑器通常工作正常,但现在我正在尝试修改 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 粘贴插件——没有被加载。所以看起来问题出在 Drupal,而不是 TinyMCE。

任何帮助 Drupal 正确加载 TinyMCE 插件将不胜感激。

4

1 回答 1

1

确保实际上正在加载“粘贴”TinyMCE 插件。出于某种原因,在 Drupal 中,“按钮和插件”下有一个条目,标题为“粘贴”。但是,这不会启用粘贴预处理回调发生所需的“粘贴”插件。

相反,请确保启用“粘贴文本”或“从 Word 粘贴”。这应该会导致“粘贴”插件加载,并发生粘贴预处理回调。

于 2016-02-08T10:32:15.080 回答