ذخیره متن در Clipboard توسط jQuery

چهارشنبه 24 تیر 1394

دراین مقاله نحوه ذخیره متن در clipboard در سمت سرویس کاربر با استفاده از jQuery را یاد می گیریم.

ذخیره  متن در Clipboard توسط jQuery

این مقاله نشان می دهد که چگونه کپی یک پاراگراف یا متن را در Clipboard در سمت سرویس گیرنده استفاده کنید. در واقع یک بار که اطلاعات داخل Clipboard باشد میتوانید به هر جای دیگر هم منتقل کنید.

برای شروع کار باید کتابخانه (references) زیر را اضافه کنید :

- jQuery

- JQuery.zclip

<script src="jquery-1.11.1.min.js"></script>   
<script src="jquery.zclip.js"></script>   

حالا در ادامه کد دستورات زیر را در صفحه اضافه کنید :

<a href="http://sibeeshpassion.com/">Copy to clipboard demo at Sibeesh Passion</a>  
<div style="margin: 25px;">  
    <textarea id="myText" class="myText" onfocus="if(this.value=='Type contents here')this.value='';" onblur="if(this.value=='')this.value='Type contents here';">Type contents here</textarea>  
    <button id="copyMe" class="copyMe">Copy</button>  
    <button id="copyMeWithCallback" class="copyMe">Copy With Callback</button>  
    <textarea style="margin-top: 25px;" id="copiedContent" class="myText" ></textarea>  
</div>   

تگ دستورات Styles را هم در صفحه اضافه کنید:

< style > .copyMe {  
    display: inline - block;  
    height: 32px;  
    width: 200px;  
    position: relative;  
    border - radius: 10px; - moz - border - radius: 10px; - webkit - border - radius: 10px;  
    background - color: #0033CC;    
color: # CCFFFF;  
}.myText {  
    display: block;  
    border - radius: 10px; - moz - border - radius: 10px; - webkit - border - radius: 10px;  
    width: 375px;  
    padding: 10px;  
    margin: 15px 0;  
    height: 75px;  
    border: 4px solid#ccc;  
    margin - top: 0;  
} < /style>  

حالا وقتی که اجرا می کنید صفحه را همانند شکل زیر مشاهده می کنید:

سپس دو روش زیر را ایجاد کنید :

بدون callback یا (Normal use)

با callback

بدون cllback یا (Normal use) :

برای کارکردن با این روش باید دستورات script زیر را در صفحه اضافه کنید :

$("#copyMe").zclip({    
   path: 'ZeroClipboard.swf',    
   copy: function () {    
      return $(this).prev().val();    
   }    
});  

وقتی که برنامه را اجرا می کنید و متن را وارد میکنید، با زدن دکمه copy یک پیغام دریافت می کنید.

با callback :

$("#copyMeWithCallback").zclip({    
   path: 'ZeroClipboard.swf',    
   copy: $('#myText').val(),    
   beforeCopy: function () {    
      $('#copiedContent').text($('#myText').val() + '-- Before Copy');    
   },    
   afterCopy: function () {    
      $('#copiedContent').text($('#myText').val() + '-- After Copy');    
   }    
});  

حالا از دو رویداد زیر استفاده می کنیم:

beforeCopy

afterCopy

پردازش های زیادی را میتوانیم در این دو رویداد انجام دهیم مانند به روزرسانی رنگ صفحات نمایشی یا textbox . که خصوصیت متن را تغییر می دهد.

حالا اسکریپت (script) قبلی را اجرا کنید و خروجی زیر را مشاهده می کنید :

همانطور که می بینید خصوصیت متنی را از text area در دو رویداد تغییر می دهد.

هنگامی که اطلاعات در داخل clipboard کپی شد، شما می توانید محتوا را به هر جای دیگر منتقل کنید. که به عنوان مثال ما محتوا را در Notpad منتقل کردیم. همانند شکل زیر مشاهده کنید:

 

کد کامل :

<!DOCTYPE html>  
<html>  
    <head>  
        <title>Copy to clipboard demo at Sibeesh Passion</title>  
        <script src="jquery-1.11.1.min.js"></script>  
        <script src="jquery.zclip.js"></script>  
        <style>    
.copyMe {    
display: inline-block;    
height: 32px;    
width: 200px;    
position: relative;    
border-radius: 10px;    
-moz-border-radius: 10px;    
-webkit-border-radius: 10px;    
background-color: #0033CC;    
color: #CCFFFF;    
}    
.myText {    
display: block;    
border-radius: 10px;    
-moz-border-radius: 10px;    
-webkit-border-radius: 10px;    
width: 375px;    
padding: 10px;    
margin: 15px 0;    
height: 75px;    
border: 4px solid #ccc;    
margin-top: 0;    
}    
</style>  
    </head>  
    <body>  
        <a href="http://sibeeshpassion.com/">Copy to clipboard demo at Sibeesh Passion</a>  
        <div style="margin: 25px;">  
            <textarea id="myText" class="myText" onfocus="if(this.value=='Type contents here')this.value='';" onblur="if(this.value=='')this.value='Type contents here';">Type contents here</textarea>  
            <button id="copyMe" class="copyMe">Copy</button>  
            <button id="copyMeWithCallback" class="copyMe">Copy With Callback</button>  
            <textarea style="margin-top: 25px;" id="copiedContent" class="myText" ></textarea>  
        </div>  
        <script>    
$(document).ready(function () {    
$("#copyMe").zclip({    
path: 'ZeroClipboard.swf',    
copy: function () {    
return $(this).prev().val();    
}    
});    
$("#copyMeWithCallback").zclip({    
path: 'ZeroClipboard.swf',    
copy: $('#myText').val(),    
beforeCopy: function () {    
$('#copiedContent').text($('#myText').val() + '-- Before Copy');    
},    
afterCopy: function () {    
$('#copiedContent').text($('#myText').val() + '-- After Copy');    
}    
});    
});    
</script>  
    </body>  
</html>  

 

فایل های ضمیمه

نرگس محمدی

نویسنده 36 مقاله در برنامه نویسان
  • Jquery
  • 2k بازدید
  • 1 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید