js 如何默认复制一段文本?

在移动和pc端,打开页面,默认复制一段文本到剪辑版,想实现这样的功能该怎么写js代码呢

阅读 3.4k
4 个回答

你可以看看document.execCommand这个方法。

例子

An example of how to use it on CodePen.

快速实现复制到剪贴板:

<p>点击复制后在右边textarea CTRL+V看一下</p>
<input type="text" id="inputText" value="测试文本"/>
<input type="button" id="btn" value="复制"/>
<textarea rows="4"></textarea>
<script type="text/javascript">
    var btn = document.getElementById('btn');
    btn.addEventListener('click', function(){
        var inputText = document.getElementById('inputText');
        var currentFocus = document.activeElement;
        inputText.focus();
        inputText.setSelectionRange(0, inputText.value.length);
        document.execCommand('copy', true);
        currentFocus.focus();
    });
</script>

然而移动端的兼容性...

Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? (Yes) (Yes) ? ? ?
insertBrOnReturn 未实现 未实现 (Yes) 未实现 未实现 未实现
copy/cut 未实现 42 41.0 (41) ? ? 未实现

github关键词 cilpboard

纯js的话,移动端基本不用考虑了。兼容性非常差。

如果是用户操作复制的话 楼上的那个document.execCommand就可以基本实现,有一个clipboard.js插件 可以看看。 如果想用户不主动去触发打开页面直接复制的话 移动端暂时没发现有什么好的办法,都会被阻止

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题