通过Wysiwyg模块包含TinyMCE的Drupal 7。在Wysiwyg配置屏幕中启用“粘贴”。编辑器一般工作正常,但现在我正在尝试修改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插件的帮助都会非常感激。
答案 0 :(得分:1)
确保"粘贴"实际上正在加载TinyMCE插件。出于某种原因,在Drupal中有一个条目是" Buttons and Plugins"标题简单"粘贴"。然而,这并没有启用"粘贴"发生粘贴预处理回调所需的插件。
相反,请确保"粘贴文字"或"从Word粘贴"已启用。这应该导致"粘贴"要加载的插件,以及要发生的粘贴预处理回调。