简单的防盗贴方法

当访客复制页面内容达到一定长度时,可使用此方法加上简单的版权说明。

例如:

在网站复制长度大于42的文本时自动加上这样的版权声明:

实现原理:

监听copy事件

使用 window.getSelection() 获取选中的文本

使用 clipboardData.setData 操作剪贴板的内容

代码实现:

    document.body.addEventListener('copy', function (e) {

        if (window.getSelection().toString()) {

            setClipboardText(e);

//            alert('商业转载请联系作者获得授权,非商业转载请注明出处,谢谢合作。');

        }

    });

    function setClipboardText(event) {

        var clipboardData = event.clipboardData || window.clipboardData;

        if (clipboardData) {

            event.preventDefault();

            var htmlData = ''

                + '著作权归作者所有。<br>'

                + '商业转载请联系作者获得授权,非商业转载请注明出处。<br>'

                + '作者:作者名<br>'

                + '链接:' + window.location.href + '<br>'

                + '来源:指定网址等<br><br>'

                + window.getSelection().toString();

            var textData = ''

                + '著作权归作者所有。\n'

                + '商业转载请联系作者获得授权,非商业转载请注明出处。\n'

                + '作者:作者名\n'

                + '链接:' + window.location.href + '\n'

                + '来源:指定网址等\n\n'

                + window.getSelection().toString();

            clipboardData.setData('text/html', htmlData);

            clipboardData.setData('text/plain',textData);

        }

    }

已知问题

iOS Safari 不兼容 clipboardData.setData() 方法,所以在 iOS Safari 上无效

补充说明:原帖地址 https://www.anotherhome.net/

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