如何在tinymce中禁用复制/粘贴

时间:2019-05-09 09:58:38

标签: javascript jquery angularjs codeigniter

我在我的网站上使用tinymce RTF编辑器。我想在tinymce textarea中禁用复制/粘贴选项。我在stackoverflow上发现了此方法,但对我不起作用。

How to Prevent/disable copy and paste in Tinymce

document.addEventListener('paste', function(e){
   e.preventDefault(); 
});

4 个答案:

答案 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 = '' 的早期答案实际上并没有阻止粘贴操作,而是将粘贴的内容更改为仍然被粘贴的空字符串。

TinyMCE Event Doc

这实际上完全防止了粘贴。

paste_preprocess: (plugin, args) => {
    args.stopImmediatePropagation();
    args.stopPropagation();
    args.preventDefault();
});