Alat pengembang · HTML WYSIWYG editor
Teks Kaya di Papan Klip: Bagaimana Pemformatan Bergerak Antar Aplikasi
· Latar belakang
html papan klip contenteditable
Menjelaskan berbagai format yang ditempatkan oleh salinan teks kaya di papan klip, bagaimana setiap aplikasi memilih satu format, dan mengapa markup yang ditempel tidak pernah sesuai dengan apa yang disalin.
Salinan yang sama, tiga tempel berbeda — terbuka dengan konten yang ditempelkan ke browser, terminal, dan klien email
Satu paragraf yang disalin dapat muncul sebagai konten yang diformat di editor browser dan karakter yang tidak diformat di terminal karena tujuan meminta representasi yang berbeda. Penangan tempel ToolAcre meminta clipboard untuk HTML dan teks biasa, lalu mengikuti cabang tetap daripada mempercayai penyisipan default browser.
Jika ada HTML, fragmen kaya asli tidak pernah muncul ke permukaan secara langsung. Ini melewati pembersih terlebih dahulu. Jika HTML tidak ada, teks biasa akan disisipkan. Aturan lokal tersebut menjelaskan perilaku editor ini tanpa menyatakan bagaimana setiap klien email, sistem operasi, atau office suite memprioritaskan data clipboard.
Penangan tempel ini membaca teks/html dan teks/plain; variasi papan klip yang lebih luas tidak dapat dibuktikan
Papan klip dapat berisi banyak representasi dari satu pilihan. Implementasi ini secara eksplisit berhubungan dengan `text/html` dan `text/plain`. Ini tidak menyebutkan RTF, gambar, referensi file, atau format khusus aplikasi, sehingga hal tersebut tidak boleh dianggap sebagai masukan yang didukung.
Kedua string tersebut dapat menyandikan informasi yang berbeda. Teks biasa memuat karakter dan jeda baris, sedangkan HTML dapat memuat paragraf, daftar, penekanan, dan tautan serta atribut yang tidak diinginkan. ToolAcre menyukai struktur jika tersedia tetapi mempersempitnya melalui elemen, atribut, dan kebijakan URL sebelum penyisipan.
Siapa yang menulis rasa HTML — menjelaskan bahwa aplikasi sumber menghasilkannya, itulah sebabnya pasta Word dan Google Documents terlihat sangat berbeda
Aplikasi sumber membuat representasi HTML, itulah sebabnya dua salinan yang serupa secara visual dapat menyediakan pembungkus dan presentasi yang berbeda. ToolAcre tidak mengidentifikasi produsernya. Ini menerapkan satu aturan umum: pembungkus dan atribut yang tidak didukung akan dihapus terlepas dari asalnya.
Hal ini mencegah katalog internal Word atau Google Dokumen yang tidak bersumber menjadi klaim produk. Daftar penghapusan memberi tahu penulis apa yang ditolak parser ini. Jika kesetiaan terhadap aplikasi sumber penting, ambil perlengkapan nyata dari lingkungan yang didukung dan ujilah daripada mengandalkan contoh artikel umum.
Cara memilih tujuan — mencakup urutan preferensi dan pintasan tempel sebagai teks biasa
Tujuan dipilih berdasarkan kode. Di sini, HTML yang tidak kosong menang; jika tidak, teks biasa akan digunakan. Tidak ada tombol toolbar untuk “tempel sebagai teks biasa”, dan sumber repositori tidak menentukan perilaku pintasan keyboard. Browser dan sistem operasi mungkin menawarkan isyarat tersebut secara independen.
Penanganan drop mencerminkan ide yang sama dengan DataTransfer: mencegah default, membaca HTML dan nilai biasa, membersihkan HTML sebelum `insertHTML`, atau mengirim karakter biasa melalui `insertText`. Tidak seperti tempel, jalur pelepasan tidak menampilkan jumlah penghapusan mendetail yang sama, meskipun penyegaran tetap memperbarui dokumen yang terlihat.
Metadata fragmen platform tidak diuraikan secara eksplisit oleh implementasi ini
Beberapa platform membungkus HTML fragmen papan klip dalam metadata atau penanda, namun ToolAcre tidak berisi parser eksplisit untuk format platform bernama. Tokenizernya melihat string yang dikembalikan oleh `getData("text/html")` dan memproses markup yang dikenali. Oleh karena itu, artikel ini menghilangkan sintaks header, offset, dan jaminan khusus sistem operasi.
Jika pembungkus muncul sebagai komentar, komentar akan dihapus. Jika metadata tiba di luar HTML yang dikenali, perilaku harus diuji. Kemungkinan kualitatif tidak cukup untuk mengklaim dukungan atau penolakan terhadap protokol platform yang tidak pernah disebutkan namanya.
Contoh praktis: bandingkan muatan clipboard yang kaya dengan muatan biasa saja
Salin paragraf tidak sensitif yang berisi teks kuat, daftar pendek, dan tautan https. Pasta kaya dapat mempertahankan struktur yang diizinkan, menghapus gaya sumber, dan menambahkan rel ke tautan. Periksa sumber dan peringatan penghapusan. Kemudian tempelkan representasi biasa saja melalui lingkungan yang tidak menyediakan HTML.
Hasil polos berisi karakter yang disisipkan pada pilihan; struktur blok apa pun ditentukan oleh host pengeditan browser, bukan dipulihkan dari HTML asli. Bandingkan kata dan batas garis secara terpisah dari elemen. Latihan ini mendemonstrasikan terjemahan antar representasi, bukan penyalinan byte demi byte.
Apa yang tidak tercakup di sini — API clipboard, gambar, pintasan platform, atau matriks izin
Artikel ini tidak membahas pemrograman navigator.clipboard, perintah izin, gambar papan klip, file, RTF, pintasan seluler, atau matriks preferensi lintas platform. Ia juga tidak mengklaim bahwa pasta kaya yang dicegat membuat HTML yang bermusuhan dan sewenang-wenang aman untuk dipublikasikan.
Pembersih ToolAcre sempit dan mengakui perbedaan parser. Kotak pasirnya memblokir eksekusi di pratinjau lokal, tetapi HTML yang disalin meninggalkan lingkungan tersebut. Server penerima memerlukan kebijakan keluaran dan pembersih berbasis parser yang sesuai, sementara pengguna harus menghindari menempelkan rahasia ke halaman yang belum ditinjau.
Kesimpulan: tempel adalah terjemahan, bukan salinan — merangkum model dan caranya ToolAcre'S HTML WYSIWYG editor memungkinkan Anda memeriksa terjemahan yang dihasilkan
Pasta kaya adalah terjemahan: sumber menulis representasi, tujuan memilih satu, dan ToolAcre memfilter HTML yang dipilih sebelum dimasukkan. Memahami urutan itu menjelaskan mengapa pemformatan bisa hilang tanpa menganggap clipboard rusak.
Gunakan perlengkapan yang representatif, periksa sumber yang dihasilkan dan pertahankan konten asli ketika pembersihan mungkin menghilangkan makna. Pasta biasa berguna untuk mengatur ulang presentasi, sedangkan pasta kaya dapat mempertahankan struktur. Tidak ada jalur yang membebaskan destinasi dari sanitasi, pengujian kompatibilitas, atau tinjauan editorial.