相容所有瀏覽器的點選複製文字內容效果

antzone發表於2017-04-06

點選一個按鈕複製指定元素中的內容貌似在很久以前很容易實現。但是現在好像麻煩了許多,這是因為在很久以前,IE瀏覽器佔絕大多數,甚至都可以不用考慮其他瀏覽器,所以使用IE自帶的功能就可以實現,但是隨著時間的推移,各種瀏覽器的出席那,IE那獨有的方式已經不再適合,下面就分享一個能夠相容所有瀏覽器的方式。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.zclip.min.js"></script> 
<script>
$(function(){ 
  $('#copy_input').zclip({ 
    path: 'js/ZeroClipboard.swf', 
    copy: function(){//複製內容 
      return $('#mytext').val(); 
    }, 
    afterCopy: function(){//複製成功 
      $("<span id='msg'/>").insertAfter($('#copy_input')).text('複製成功'); 
    } 
  }); 
}); 
</script>
</head>
<body>
<textarea id="mytext">請輸入內容</textarea><br/> 
<a href="#" id="copy_input" class="copy">複製內容</a>
</body>
</html>

上面的程式碼實現了點選元素複製指定元素內容效果,下面介紹一下注意點。

特別說明:

(1).首先要引入jquery和jquery.zclip外掛。

(2).要在伺服器環境下測試,否則沒有效果。

(3).如果是複製的內容來自輸入框input、textarea等表單元素,copy物件使用如下程式碼:

[JavaScript] 純文字檢視 複製程式碼
copy: function(){ 
  return $('#mytext').val(); 
}

如果是div、span或者p等元素,就需要使用如下方法:

[JavaScript] 純文字檢視 複製程式碼
copy: function(){ 
  return $('#mytext').text(); 
}

引數說明:

(1).path:swf呼叫路徑,必須,如js/ZeroClipboard.swf。

(2).copy:複製的內容,必須,任意字串,也可以是回撥函式返回的內容。

(3).beforeCopy:複製內容前回撥函式,可選。

(4).afterCopy:複製內容後回撥函式,可選。

完整程式碼下載:相容所有瀏覽器的點選複製文字內容效果複製黏貼.rar

相關文章