Angular 复制文本指令

@Input()copyText:string;

constructor(

private renderer: Renderer2,

private el: ElementRef

) { }

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

public onClick () {

if (!this.copyText) {

return;

}

const dom =this.renderer.createElement('div');

const el =this.el.nativeElement;

const range =document.createRange();

this.renderer.setAttribute(dom,'id','copyId');

this.renderer.setProperty(dom,'innerHTML',this.copyText);

el.appendChild(dom);

range.selectNode(el.querySelector('#copyId'));

window.getSelection().removeAllRanges();

window.getSelection().addRange(range);

const success =document.execCommand('copy');

if (success) {

console.log('复制成功');

el.removeChild(dom);

}else {

console.log('该浏览器不支持!');

}

}


使用方法: <span [copyText]="'复制内容"></span>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。