Kopiowanie i wklejanie w dokumentach HTML w środowisku AIR

Adobe AIR 1.0 i starsze wersje

Środowisko HTML w środowisku Adobe AIR udostępnia własny zestaw zdarzeń i domyślnych ustawień kopiowania i wklejania. Wyłącznie kod działający w obszarze izolowanym aplikacji ma bezpośredni dostęp do schowka systemowego za pomocą obiektu Clipboard.generalClipboard AIR. Kod JavaScript w obszarze izolowanym innym niż aplikacyjny ma dostęp do schowka za pomocą obiektu zdarzenia wywołanego w odpowiedzi na jedno ze zdarzeń kopiowania i wklejania wywołanych przez element w dokumencie HTML.

Zdarzenia kopiowania i wklejania uwzględniają: copy , cut i paste . Obiekty wywołane dla tych zdarzeń umożliwiają dostęp do schowka za pomocą właściwości clipboardData .

Ustawienia domyślne

Domyślnie AIR kopiuje wybrane pozycje w odpowiedzi na polecenie kopiowania wygenerowane przez skrót klawiszowy lub menu kontekstowe. W obszarach edytowalnych środowosko AIR wycina tekst w odpowiedzi na polecenie wycinania lub wkleja tekst do kursora lub do wybranego miejsca w odpowiedzi na polecenie wklejania.

Aby zmienić ustawienia domyślne, moduł obsługi zdarzeń może wywołać metodę preventDefault() wywołanego zdarzenia obiektu.

Korzystanie z właściwości clipboardData obiektu zdarzenia

Właściwość clipboardData obiektu zdarzenia wywołana w wyniku jednego ze zdarzeń kopiowania i wklejania umożliwia zapis i odczyt danych ze schowka.

Aby zapisać dane do schowka w czasie obsługi zdarzenia kopiowania i wycinania, należy użyć metody setData() obiektu clipboardData , przekazując dane do skopiowania i typ MIME:

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

Aby uzyskać dostęp do wklejanych danych, należy użyć metody getData() obiektu clipboardData , przekazując typ MIME formatu danych. Dostępne formaty są zgłaszane przez właściwość types .

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

Dostęp do metody getData() i właściwości types można uzyskać wyłącznie w obiektach zdarzeń wywołanych przez zdarzenie paste .

Następujący przykład przedstawia sposób zastępowania domyślnych ustawień kopiowania i wklejania na stronę HTML. Moduł obsługi zdarzeń copy pochyla skopiowany tekst i kopiuje go do schowka jako tekst HTML. Moduł obsługi zdarzeń cut kopiuje wybrane dane do schowka i usuwa je z dokumentu. Moduł obsługi paste wstawia zawartość schowka jako tekst HTML i pogrubia wstawiony tekst.

<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>