复制到剪贴板的角度,不适用于野生动物园

时间:2019-07-16 08:56:38

标签: angular typescript safari clipboard

嗨,我有一条复制到剪贴板的指令。 但是我的朋友告诉我,它不适用于Safari(适用于chrome等)。 我没有办法测试。所以我希望你们能帮助我! :)

我的指令如下:

import { Directive, Input, Output, EventEmitter, HostListener } from '@angular/core';

@Directive({ selector: '[CopyToClipboard]' })
export class CopyClipboardDirective {

    @Input('CopyToClipboard')

    public payload: string;

    @Output('copied')

    public copied: EventEmitter<string> = new EventEmitter<string>();

    @HostListener('click', ['$event'])

    public onClick(event: MouseEvent): void {
        event.preventDefault();

        if (!this.payload) {
            return;
        }

        const listener = (e: ClipboardEvent) => {
            const clipboard = e.clipboardData || window['clipboardData'];
            clipboard.setData('text', this.payload.toString());
            e.preventDefault();
            this.copied.emit(this.payload);
        };

        document.addEventListener('copy', listener, false);
        document.execCommand('copy');
        document.removeEventListener('copy', listener, false);

    }
}

如何使其在Safari上运行?我没有使用Safari的经验。

预期结果:“将输入内容复制到剪贴板”

错误:“据我所知,它没有运行,但没有复制输入”

为什么它不是重复的,是因为我没有使用输入。我有一个字符串值,应该作为指令的输入到达。

0 个答案:

没有答案