命令
PowerPaste 插件提供以下 TinyMCE 命令。
| 命令 | 描述 |
|---|---|
mceInsertClipboardContent | 在光标位置或当前选区上触发粘贴事件。HTML 内容将自动检测为 Word、Google Docs 或标准 HTML 内容,并使用相应的粘贴路径。该命令需要一个对象,包含: |
mceTogglePlainTextPaste | 切换以纯文本形式粘贴。 |
tinymce.activeEditor.execCommand('mceInsertClipboardContent', false, {
html: '<p>Hello, World!</p>'
});
tinymce.activeEditor.execCommand('mceTogglePlainTextPaste');事件监听器
还可以在运行时使用事件监听器配置自定义粘贴过滤。
PastePreProcess等效于paste_preprocessPastePostProcess等效于paste_postprocess
事件监听器会传递与其等效配置选项相同的数据对象。只要有 Editor API 的引用,就可以随时配置或更改事件监听器回调函数。
TinyMCE 配置示例:
const yourCustomFilter = function(content) {
// 实现自定义过滤并返回过滤后的内容
return content;
};
tinymce.init({
selector: 'textarea',
plugins: 'powerpaste',
setup: function(editor) {
editor.on('PastePreProcess', function(data) {
console.log(data.content, data.mode, data.source);
// 通过修改 data.content 应用自定义过滤
const content = data.content;
const newContent = yourCustomFilter(content);
data.content = newContent;
});
editor.on('PastePostProcess', function(data) {
console.log(data.node, data.mode, data.source);
// 通过修改 data.node 应用自定义过滤
// 例如:
const additionalNode = document.createElement('div');
additionalNode.innerHTML = '<p>这段内容将插入到粘贴内容的前面。</p>';
data.node.insertBefore(additionalNode, data.node.firstElementChild);
});
}
});