我在我的网站上使用tinymce RTF编辑器。我想在tinymce textarea中禁用复制/粘贴选项。我在stackoverflow上发现了此方法,但对我不起作用。
How to Prevent/disable copy and paste in Tinymce
document.addEventListener('paste', function(e){
e.preventDefault();
});
答案 0 :(得分:2)
如果包含paste_preprocess
插件,则应该可以使用paste
。如果您使用的是paste_preprocess
,请确保将其作为选项传递给tinymce.init()
,并包括插件。例如:
tinymce.init({
selector: "textarea",
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste"
],
paste_preprocess: function (plugin, args) {
console.log("Attempted to paste: ", args.content);
// replace copied text with empty string
args.content = '';
},
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
有关示例,请参见this fiddle。
答案 1 :(得分:1)
如前所述,您可以使用paste_preprocess
。但是,您需要将paste
添加到plugins
。
示例:
tinymce.init({
...,
plugins: [
"paste"
],
paste_preprocess: function (plugin, args) {
console.log(args.content);
args.content = '';
}
});
答案 2 :(得分:0)
您可以拦截粘贴在tinymce.init
paste_preprocess: function(plugin, args) {
console.log(args.content);
args.content = '';
}
答案 3 :(得分:0)
建议替换 args.contents = ''
的早期答案实际上并没有阻止粘贴操作,而是将粘贴的内容更改为仍然被粘贴的空字符串。
这实际上完全防止了粘贴。
paste_preprocess: (plugin, args) => {
args.stopImmediatePropagation();
args.stopPropagation();
args.preventDefault();
});