AIR'de HTML kopyalama ve yapıştırma

Adobe AIR 1.0 ve üstü

Adobe AIR uygulamasındaki HTML ortamı kopyalama ve yapıştırma için kendi olay kümesini ve varsayılan davranışı sağlar. Yalnızca uygulama sanal alanındaki kod çalıştırma, AIR Clipboard.generalClipboard nesnesini kullanarak sistem panosuna doğrudan erişebilir. Uygulama dışı bir sanal alandaki JavaScript kodu, HTML belgesindeki bir öğe tarafından gönderilen copy veya paste olaylarından birine yanıt olarak gönderilen olay nesnesini kullanarak panoya erişebilir.

Copy ve paste olayları şunları içerir: copy , cut ve paste . Bu olaylar için gönderilen nesne clipboardData özelliğiyle panoya erişim sağlar.

Varsayılan davranış

Varsayılan olarak AIR, klavye kısayolu veya bağlam menüsü tarafından oluşturulabilen kopyala komutuna yanıt olarak seçili öğeleri kopyalar. Düzenlenebilir bölgeler içerisinde, AIR, kes komutuna yanıt olarak metni keser veya yapıştır komutuna yanıt olarak metni imlecin bulunduğu yere veya seçime yapıştırır.

Varsayılan davranışı engellemek için, olay işleyiciniz gönderilen olay nesnesinin preventDefault() yöntemini çağırabilir.

olay nesnesinin clipboardData özelliğini kullanma

Copy veya paste olaylarından birinin sonucu olarak gönderilen olay nesnesinin clipboardData özelliği sayesinde, pano verilerini okuyabilir ve yazabilirsiniz.

Bir copy veya cut olayını işlerken panoya yazmak için, kopyalanacak verileri ve MIME türünü ileten clipboardData nesnesinin setData() yöntemini kullanın:

function customCopy(event){ 
    event.clipboardData.setData("text/plain", "A copied string."); 
}

Yapıştırılan verilere erişmek için, veri biçiminin MIME türünü ileten clipboardData nesnesinin getData() yöntemini kullanabilirsiniz. Kullanılabilir biçimler types özelliği tarafından bildirilir.

function customPaste(event){ 
    var pastedData = event.clipboardData("text/plain"); 
}

getData() yöntemine ve types özelliğine yalnızca paste olayı tarafından gönderilen olay nesnesinde erişilebilir.

Aşağıdaki örnek bir HTML sayfasında varsayılan kopyalama ve yapıştırma davranışının nasıl geçersiz kılınacağını gösterir. copy olay işleyicisi, kopyalanan metni italik yapar ve HTML metni olarak panoya yapıştırır. cut olay işleyicisi seçili verileri panoya kopyalar ve belgeden kaldırır. paste işleyicisi pano içeriklerini HTML olarak ekler ve eklemeyi kalın metin olarak biçimlendirir.

<html> 
<head> 
    <title>Copy and Paste</title>             
    <script language="javascript" type="text/javascript"> 
        function onCopy(event){ 
            var selection = window.getSelection(); 
            event.clipboardData.setData("text/html","<i>" + selection + "</i>"); 
            event.preventDefault(); 
        } 
 
        function onCut(event){ 
             var selection = window.getSelection(); 
             event.clipboardData.setData("text/html","<i>" + selection + "</i>"); 
             var range = selection.getRangeAt(0); 
             range.extractContents(); 
             
            event.preventDefault(); 
        } 
 
        function onPaste(event){ 
            var insertion = document.createElement("b"); 
            insertion.innerHTML = event.clipboardData.getData("text/html"); 
             var selection = window.getSelection(); 
             var range = selection.getRangeAt(0); 
             range.insertNode(insertion); 
            event.preventDefault(); 
        } 
    </script> 
</head> 
<body onCopy="onCopy(event)" 
     onPaste="onPaste(event)" 
     onCut="onCut(event)"> 
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium  
doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore  
veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam 
voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur  
magni dolores eos qui ratione voluptatem sequi nesciunt.</p> 
</body> 
</html>