Javascript ile Panoya (Clipboard) Kopyalama (Firefox, Internet Explorer, Safari)

9 November 2008 Sunday

Merhaba,

web tabanlı uygulama geliştirirken, bir metnin javascript ile işletim sisteminin hafızasına (panoya) bir metin kopyalamanız gerekebilir. Bu amaçla yazılmış yüzlerce örneğe ulaşabilirsiniz. Ancak bu örneklerin büyük bölümü bazı tarayıcılarda (Firefox gibi) çalışmamaktadır. Örneğin internet explorer’da çalışan aşağıdaki örnek kod, firefox gibi tarayıcılarda çalışmamaktadır.

holdtext.innerText = copytext.innerText;
Copied = holdtext.createTextRange();
Copied.execCommand("Copy");

Bunun mozilla tabanlı tarayıcılarda çalışmamasını, mozilla bu adreste açıklamış. Bu adreste, tüm tarayıcılarda çalışacak bir örnek yer almaktadır. Küçük bir swf dosya ile bu kopyalama sorununu çözebilirsiniz. Aşağıdaki javascript fonksiyonuna kopyalayacağınız metni parametre olarak vermeniz ve fonksiyonu herhangi bir şekilde tetiklemeniz yeterli olacaktır.

 function copyIntoClipboard(text) {

var flashId = 'flashId-HKxmj5';

/* clipboard.swf dosyasının bulunduğu adresi düzenleyin*/
var clipboardSWF = 'http://www.akcakaya.info/wp-content/uploads/2008/10/clipboard.swf';

if(!document.getElementById(flashId)) {
var div = document.createElement('div');
div.id = flashId;
document.body.appendChild(div);
}
document.getElementById(flashId).innerHTML = '';
var content = '<embed src="' +
clipboardSWF +
'" FlashVars="clipboard=' + encodeURIComponent(text) +
'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
document.getElementById(flashId).innerHTML = content;
}

Örnekte kullanılan swf dosyası için tıklayınız.

Veli Akçakaya
Bilgisayar Öğretmeni
Yazılım Uzmanı
Bu yazıya yorum ekleyebilirsiniz veya kendi web sitenize geri izleme olarak ekleyebilirsiniz.

1 Yanıt var to “Javascript ile Panoya (Clipboard) Kopyalama (Firefox, Internet Explorer, Safari)”

  1. Balkoncu says:

    April 26th, 2009 at 23:44

    Örnekle açıklarsanız daha iyi olurdu. Bu kodu div içeriği kopyalamakta da kullanabilir miyim?

Yorum Ekleyin

Security Code: