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" 插件,并发生粘贴预处理回调。
通过 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" 插件,并发生粘贴预处理回调。