TinyMCE编辑器右键单击粘贴不起作用

时间:2019-11-14 07:09:18

标签: angular tinymce tinymce-4 tinymce-plugins

public async ngAfterViewInit(): Promise<void> {
    tinymce.init({
        selector: `textarea#${this.identifier}`,
        menubar: false,
        contextmenu: "copy paste",
        mobile: {
            theme: 'silver'
        },
        readonly: !this.arguments.isEditMode,
        language: this._applicationService.applicationLanguage.replace('-', '_'),
        plugins: 'print autoresize preview fullpage importcss searchreplace autolink directionality visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists imagetools textpattern noneditable help charmap emoticons',
        toolbar: 'undo redo | bold italic underline strikethrough | fontsizeselect formatselect | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | insertfile image media link | table | preview fullscreen',
        paste_as_text: true,
        fontsize_formats: '8pt 8.5pt 9pt 9.5pt 10pt 10.5pt 11pt 11.5pt 12pt 12.5pt 14pt 14.5pt 16pt 16.5pt 18pt 18.5pt 20pt 20.5pt 22pt 22.5pt 24pt 24.5pt 26pt 26.5pt 30pt 30.5pt 36pt 36.5pt'}

这是我的代码,当我右键单击我在contextmenu复制中具有复制和粘贴选项但没有粘贴时。 我应该怎么解决呢?

1 个答案:

答案 0 :(得分:0)

我认为您将无法在大多数现代浏览器上完成所需的操作。

如果您尝试使用TinyMCE中内置的“剪切/复制/粘贴”工具栏按钮或菜单选项,则对于大多数浏览器都会看到以下信息:

  

“您的浏览器不支持直接访问剪贴板。请   而是使用Ctrl + X / C / V键盘快捷键。“

编辑器中的消息指出,这仅是您在某些浏览器中不能直接通过JavaScript进行操作的限制。

想象一下,如果任意JavaScript可以随时访问剪贴板,该怎么办? “坏人”没有遵守规则,那么(加载网页时)如果他们拥有从剪贴板抓取所有内容并将其发送到服务器的JavaScript,该怎么办?

随着时间的流逝,浏览器制造商意识到直接访问剪贴板是“错误的”……通过让用户键入CRTL + C和CRTL + V,您实际上是在告诉浏览器您希望它访问剪贴板。

IE11确实确实允许通过旧版API进行访问,但是目前没有其他浏览器完全支持剪贴板API,因此复制剪贴板中内容的唯一方法是使用键盘。

注意: 使用copy在剪贴板中放置内容可以在更广泛的浏览器中使用,但可以通过编程方式访问剪贴板以获取其内容出于上述原因,现代浏览器将无法执行(粘贴的第一步)。