Readme.ge Blog

FB image FB image

Cut, Copy და Paste ფუნქცია ბროუზერებში

ავტორი: ალექსანდრე თარიღი: Monday, July 28th, 2008

ალბათ ბევრგან შეგვხვედრია ვებ გვერდზე რაიმე ბმულის ან ტექსტის გასწვრივ წერია Copy, რომელმაც იდეაში მოცემული ბმული თუ რაიმე კონკრეტული ტექსტი უნდა დააკოპიროს თქვენს ბუფერში, თუმცა როგორც ეს ხშირად ხდება ესე არაა და Copy-ზე დაჭერისას დასაკოპირებელი ტექსტი უბრალოდ ინიშნება რომ მერე Ctrl+C ან კონტექსტური მენიუდან დააკოპირო ხელით. ეს ნიშნავს რომ ღილაკი Copy რეალურად კოპირება კი არაა, არამედ დასაკოპირებელი ტექსტის მონიშვნაა. IE-ში ამის შესრულება ხდება შემდეგნაირად

1
2
3
window.clipboardData.setData("Text",'raime teqsti'); // კოპირება [Copy]
window.clipboardData.getData("Text",'raime teqsti'); // ჩასმა [Paste]
window.clipboardData.clearData(); // გაწმენდა [Clear]

მაგრამ პრობლემა გვხდება დანარჩენ ბროუზერებში – Firefox, Opera, Safari
ამისათვის უკვე შეგვიძლია მივმართოთ flash-ს
იქ სადაც window.clipboardData ვერ იმუშავებს შეგვიძლია დასაკოპირებელი ტექსტი გადავცეთ Flash-ს რაიმე ცვლადის მნიშვნელობაში და მერე flash-მა ჩასვას დასაკოპირებელი ტექსტი ბუფერში. ოპტიმიზაციისათვის flash ელემენტი შევქმნათ მას შემდეგ თუ არ გვაქვს ჯადოსნური window.clipboardData.

მაგალითმა მიიღო შემდეგი სახე –

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function copy(text2copy) {
if (window.clipboardData) {
window.clipboardData.setData("Text",text2copy);
} else {
var flashcopy = 'flashcopy';
if(!document.getElementById(flashcopy)) {
var flashdiv = document.createElement('div');
flashdiv.id = flashcopy;
document.body.appendChild(flashdiv);
}
document.getElementById(flashcopy).innerHTML = '';
var divinfo = '<embed src="_clipboard.swf" FlashVars="clipboard='+text2copy+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
document.getElementById(flashcopy).innerHTML = divinfo;

}
alert('ტექსტი დაკოპირდა');
}

რას შეეხება Flash-ს რომელსაც გადავეცით დასაკოპირებელი სტრინგი, იქ არც მეტი არც ნახლები სულ რამოდენიმე ხაზი გვიწერია-

1
2
3
4
if (clipboard.length)
{
System.setClipboard(clipboard);
}

ესეც ასე მუშა მაგალითი შეძლიათ ნახოთ მისამართზე
და აგრეთვე გადაწერა შემდეგი მისამართიდან

მოკლე ხანში შევეცდები შევასრულო Paste ფუნქცია, ხოლო რაც შეეხება Cut-ს იგი არაფერია თუ არა იგივე Copy ოღონდ მას მოყვება Input ელემენტის გაწმენდა მაგ – value=”;

კატეგორიებში: HTML, Javascript. |

დატოვე კომენტარი

...