国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js實(shí)現(xiàn)復(fù)制粘貼功能

Steven / 1142人閱讀

摘要:在項(xiàng)目中使用到復(fù)制粘貼功能,雖然網(wǎng)上有很多大牛封裝了很多的插件,但是還是想不去使用插件,就像自己來實(shí)現(xiàn)這個(gè)功能。

在項(xiàng)目中使用到復(fù)制粘貼功能,雖然網(wǎng)上有很多大牛封裝了很多的插件,但是還是想不去使用插件,就像自己來實(shí)現(xiàn)這個(gè)功能。

初步想法:
1. 獲取到需要復(fù)制的內(nèi)容,這里我可以將需要復(fù)制的內(nèi)容放在input或者textarea的value中,然后使用input的select()方法來獲取到值;
2. 獲取到值了,那我下一步就是復(fù)制了,document.execCommand()方法可以操作很多功能,這里我可以使用他的copy復(fù)制選中的文字到粘貼板的功能;
3. 復(fù)制功能實(shí)現(xiàn)了,但是這個(gè)input或者textarea不是我頁面布局中所需要的,那我可以將input或者textarea設(shè)置成透明的;
代碼實(shí)現(xiàn):
1. js:

   import React, {PureComponent} from "react";
    import PropTypes from "prop-types";
    import "./index.less"
    class CopyClip extends PureComponent {
     static propTypes = {
    text: PropTypes.any, //文字內(nèi)容
    ID: PropTypes.string
     };
    static defaultProps = {
    ID: "copy-clip-textarea",
    };
     constructor(props) {
        super(props);
        this.state = {}
      }
      componentWillMount() {
        const {text} = this.props;
        this.setState({
          text
        })
      }
      componentWillReceiveProps(nextProps) {
        const {text} = nextProps;
        this.setState({
          text
        })
      }
      handleCopy = () => {
        let {ID} = this.props;
        let range, selection;
        let input = document.getElementById(ID);
        input.select();  // 獲取到需要復(fù)制的內(nèi)容
        if (input.value && ((typeof input.select) == "function")) {
          range = document.createRange();  // 創(chuàng)建range對(duì)象
          selection = document.getSelection();  // 返回一個(gè)Selection 對(duì)象,表示用戶選擇的文本范圍或光標(biāo)的當(dāng)前位置。
          range.selectNode(input);
                  selection.addRange(range);
          input.setSelectionRange(0, input.value.length);  // 為當(dāng)前元素內(nèi)的文本設(shè)置備選中范圍
          let successful = document.execCommand("copy");  //  使用document.execCommand()方法, copy指令復(fù)制選中的文字到粘貼板的功能
          if (!successful) {
            this.props.onCopy(false);
            window.clipboardData.setData("text", this.state.text);  // 解決部分瀏覽器復(fù)制之后沒有粘貼到粘貼板,使用瀏覽器自帶的粘貼板
          } else {
            this.props.onCopy(true)
          }
        } else {
         this.props.onCopy(false)
        }
     };
      render() {
        const {text} = this.state;
        return (
          
this.handleCopy()}> {this.props.children}
) } } export default CopyClip 2. css .common-copy-clip { position: relative; textarea { position: absolute; top: 0; opacity: 0; }

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/98961.html

相關(guān)文章

  • 使用clipboard實(shí)現(xiàn)前端頁面復(fù)制粘貼板的功能

    摘要:最近公司需要做一個(gè)實(shí)現(xiàn)復(fù)制的功能,本來以為會(huì)是很簡單兩三行代碼的事,后來發(fā)現(xiàn)網(wǎng)上說的那些原生實(shí)現(xiàn)復(fù)制的方法很多瀏覽器因?yàn)榘踩脑蚨疾恢С至耍瑖L試了很長時(shí)間,還是死心了,決定使用第三方的庫。 最近公司需要做一個(gè)js實(shí)現(xiàn)復(fù)制的功能,本來以為會(huì)是很簡單兩三行js代碼的事,后來發(fā)現(xiàn)網(wǎng)上說的那些原生js實(shí)現(xiàn)復(fù)制的方法很多瀏覽器因?yàn)榘踩脑蚨疾恢С至耍瑖L試了很長時(shí)間,還是死心了,決定使用第三方...

    Astrian 評(píng)論0 收藏0
  • 前端er怎樣操作剪切復(fù)制以及禁止復(fù)制+破解等

    摘要:取消默認(rèn)的復(fù)制事件被復(fù)制的文字等下插入防知乎掘金復(fù)制一兩個(gè)字則不添加版權(quán)信息超過一定長度的文字就添加版權(quán)信息作者鏈接來源掘金著作權(quán)歸作者所有。以上參考資料高程操作剪貼板網(wǎng)頁上如何實(shí)現(xiàn)禁止復(fù)制粘貼以及如何破解原生實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本 showImg(https://segmentfault.com/img/remote/1460000015942602?w=1280&h=720); 前言...

    mikasa 評(píng)論0 收藏0
  • 前端er怎樣操作剪切復(fù)制以及禁止復(fù)制+破解等

    摘要:取消默認(rèn)的復(fù)制事件被復(fù)制的文字等下插入防知乎掘金復(fù)制一兩個(gè)字則不添加版權(quán)信息超過一定長度的文字就添加版權(quán)信息作者鏈接來源掘金著作權(quán)歸作者所有。以上參考資料高程操作剪貼板網(wǎng)頁上如何實(shí)現(xiàn)禁止復(fù)制粘貼以及如何破解原生實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本 showImg(https://segmentfault.com/img/remote/1460000015942602?w=1280&h=720); 前言...

    amuqiao 評(píng)論0 收藏0
  • 前端er怎樣操作剪切復(fù)制以及禁止復(fù)制+破解等

    摘要:取消默認(rèn)的復(fù)制事件被復(fù)制的文字等下插入防知乎掘金復(fù)制一兩個(gè)字則不添加版權(quán)信息超過一定長度的文字就添加版權(quán)信息作者鏈接來源掘金著作權(quán)歸作者所有。以上參考資料高程操作剪貼板網(wǎng)頁上如何實(shí)現(xiàn)禁止復(fù)制粘貼以及如何破解原生實(shí)現(xiàn)點(diǎn)擊按鈕復(fù)制文本 showImg(https://segmentfault.com/img/remote/1460000015942602?w=1280&h=720); 前言...

    DevTalking 評(píng)論0 收藏0
  • 移動(dòng)端復(fù)制文本到粘貼板,clipboard.js的使用,移動(dòng)端與PC端復(fù)制粘貼兼容寫法

    摘要:首先引用文本文檔要用復(fù)制按鈕要用去掉文字檢查,不可編輯,插件自帶的屬性樣式代碼至此,兼容移動(dòng)端和端的復(fù)制粘貼功能完美實(shí)現(xiàn),感謝作者作者來源原文版權(quán)聲明本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接 1.首先引用clipboard.js 2.html 文本文檔要用textarea,復(fù)制按鈕要用button 9999999 spellcheck=false去掉文字檢查,readonly不可編輯...

    legendmohe 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<