zoukankan      html  css  js  c++  java
  • 文字复制和选择效果

    文字复制

    • 仅能复制input内的文字
    • 有几种api(兼容问题)

    这里使用典型的一种api,另,为了能复制div内的文字,就需要我们通过动态创建input来实现。

    dom.addEventListener('click',e=>{
        // 创建input
        let input = document.createElement('input');
        document.body.appendChild(input);
        // 塞入内容
        input.setAttribute('value', res.innerText);
        // 选中内容
        input.select();
        // 执行复制
        document.execCommand('copy');
        // 移除掉 input
        document.body.removeChild(input);
    })
    

    文字选择

    • document.body.createTextRange
    • window.getSelection
    // 选择某dom内的所有文本
    function selectText(el) {
        if (document.body.createTextRange) {
            var range = document.body.createTextRange();
            range.moveToElementText(el);
            range.select();
        } else if (window.getSelection) {
            var selection = window.getSelection();
            var range = document.createRange();
            range.selectNodeContents(el);
            selection.removeAllRanges();
            selection.addRange(range);
        } 
    }
    

    简单结合

    dom.addEventListener('click',e=>{
        // 创建input
        let input = document.createElement('input');
        document.body.appendChild(input);
        // 塞入内容
        input.setAttribute('value', res.innerText);
        // 选中内容
        input.select();
        // 执行复制
        document.execCommand('copy');
        // 界面上选择文本  需放在 iput.select()之后,否则会被取消效果
        this.selectText(e.target)  
        // 移除掉 input
        document.body.removeChild(input);
    })
    
  • 相关阅读:
    推荐阅读20100506
    Windows 7中使用任务计划和媒体播放器当闹钟
    推荐阅读20100517
    又遇IIS 7不能压缩js文件的问题
    推荐阅读20100523
    jQuery调用WCF服务时如何传递对象参数
    Execution permission cannot be acquired
    快乐出发
    推荐阅读20100509
    参加“全球互动娱乐专家讲坛”之“创业者与创业板”的收获
  • 原文地址:https://www.cnblogs.com/grey-zhou/p/10042883.html
Copyright © 2011-2022 走看看