Rumah hujung hadapan web tutorial js Analisis ringkas tentang prinsip pelaksanaan kemahiran editor_javascript HTML WYSIWYG dalam talian

Analisis ringkas tentang prinsip pelaksanaan kemahiran editor_javascript HTML WYSIWYG dalam talian

May 16, 2016 pm 04:02 PM
html Prinsip pelaksanaan Editor

Pada masa kini, pembangunan tapak web semakin menggalakkan pengalaman pengguna, dan semakin banyak alat untuk memberikan kemudahan kepada pengguna, dan penyunting kandungan HTML dalam talian harus dianggap sebagai salah satu yang "lebih tua". Mereka yang mempunyai fungsi mudah boleh menyediakan pengguna dengan kawalan gaya teks, seperti warna teks, saiz fon, dsb., manakala mereka yang mempunyai fungsi yang kompleks malah boleh menyediakan fungsi yang berkuasa serupa dengan Word. Walaupun terdapat banyak editor sumber terbuka sekarang, tidak banyak yang benar-benar mudah digunakan, jadi kerja penambahbaikan mereka sentiasa berjalan.

Kebanyakan editor di Internet hari ini mempunyai fungsi yang sangat berkuasa Secara relatifnya, mereka juga memerlukan banyak konfigurasi semasa penggunaan Sudah tentu, kod itu secara semula jadi akan "kembung". Jika kita tidak memerlukan editor yang begitu berkuasa, kita boleh melaksanakannya sendiri, kerana kodnya tidak rumit. Berikut adalah sedikit pengalaman peribadi, untuk rujukan sahaja (mengambil ExtJS HTMLEditor sebagai contoh).

1. Apabila halaman telah selesai dimuatkan, tambahkan IFrame pada halaman (pilihan). Apa yang perlu diperhatikan di sini ialah untuk menentukan status halaman, tunggu sehingga halaman dimuatkan sepenuhnya sebelum meneruskan untuk mengelakkan ralat di mana elemen tertentu tidak dapat ditemui.

2. Buka fungsi penyuntingan. Jadikan IFrame boleh diedit (kod di bawah berasal dari HTMLEditor ExtJS):

Salin kod Kod adalah seperti berikut:

// Dapatkan objek tetingkap iframe
getWin : function(){
           kembalikan Ext.isIE ? this.iframe.contentWindow : window.frames[this.iframe.name];
},

//Dapatkan objek dokumen iframe
getDoc: function(){
           kembalikan Ext.isIE ? this.getWin().document: (this.iframe.contentDocument || this.getWin().document);
},

//Buka objek dokumen dan tulis kandungan permulaan padanya agar serasi dengan FireFox
doc = this.getDoc();
doc.open();
doc.write('');
//Buka mod penyuntingan objek dokumen
doc.designMode = "on";
doc.close();

Dengan cara ini anda boleh menulis kandungan ke dalam editor mudah ini.

3. Dapatkan kandungan editor, kodnya adalah seperti berikut:

Salin kod Kod adalah seperti berikut:

//Dapatkan objek badan editor
var body = doc.body ||. doc.documentElement;
//Dapatkan kandungan editor
kandungan var = body.innerHTML;
//Proses kandungan, seperti menggantikan beberapa aksara khas, dsb.
//Beberapa kod

//Kembalikan kandungan
kembalikan kandungan;

4. Tambah tetapan gaya. Walaupun editor di atas melaksanakan fungsi asas, ia benar-benar terlalu mudah Beberapa pelaksanaan gaya mudah harus ditambah. Kaedah execCommand dokumen menjadikan idea ini mungkin.

Salin kod Kod adalah seperti berikut:

//Kaedah arahan pelaksanaan seragam
fungsi execCmd(cmd, nilai){
//Untuk mendapatkan objek dokumen, rujuk kod di atas
//Panggil kaedah execCommand untuk melaksanakan arahan
doc.execCommand(cmd, false, value === undefined ? null : value);
};

//Tukar fon yang dipilih kepada tebal, Ctrl-B
execCmd('bold');
//Garis bawah, Ctrl-U
execCmd('garis bawah');
//Tukar kepada huruf condong, Ctrl-I
execCmd('italic');
//Tetapkan warna teks
execCmd('forecolor', Ext.isSafari || Ext.isIE ? '#' color : color);
//Masukkan sekeping kandungan pada kursor
fungsi insertAtCursor(teks){
//Untuk mendapatkan objek win, rujuk kod di atas
jika(Ext.isIE){
      win.focus();
var r = doc.selection.createRange();
Jika(r){
         r.runtuh(benar);
          r.pasteHTML(text);                          } else if(Ext.isGecko || Ext.isOpera){
      win.focus();
​​execCmd('InsertHTML', text);
} else if(Ext.isSafari){
​​execCmd('InsertText', text);
}
}

5. Pergi selangkah lebih jauh. Sekarang anda boleh menukar gaya Jika editor mempunyai bar alat (ini sepatutnya tidak dapat dielakkan), maka kami juga mahu butang pada bar alat diserlahkan atau dipaparkan secara automatik mengikut gaya kedudukan kursor. Kaedah queryCommandState() dokumen membolehkan idea ini direalisasikan.


Salin kod Kod adalah seperti berikut:
//Untuk mendapatkan objek dokumen, rujuk pada bahagian bertentangan
//Sama ada kursor tebal
var isBold = doc.queryCommandState('bold');
if(isBold){
//Tukar gaya butang Bold
}
//Sudah tentu kod di atas boleh digabungkan, ini hanyalah petunjuk

//Gariskan
doc.queryCommandState('garis bawah');
//italic
doc.queryCommandState('italic');

Artikel ini hanya memberikan idea mudah untuk melaksanakan editor, dan beberapa kod boleh digunakan secara langsung. Adalah disyorkan bahawa rakan-rakan yang ingin melaksanakan editor mereka sendiri boleh merujuk kepada kod HTMLEditor dalam ExtJS, yang mudah dan jelas, dan boleh dilanjutkan padanya.

Satu peringatan terakhir: Pastikan anda memberi perhatian kepada isu keserasian penyemak imbas dan jangan tunggu sehingga tamat untuk menguji keserasian Untuk jumlah kod JavaScript yang begitu besar, pelarasan lebih menyakitkan.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Sempadan Jadual dalam HTML Sempadan Jadual dalam HTML Sep 04, 2024 pm 04:49 PM

Panduan untuk Sempadan Jadual dalam HTML. Di sini kita membincangkan pelbagai cara untuk menentukan sempadan jadual dengan contoh Sempadan Jadual dalam HTML.

HTML jidar-kiri HTML jidar-kiri Sep 04, 2024 pm 04:48 PM

Panduan untuk HTML margin-kiri. Di sini kita membincangkan gambaran keseluruhan ringkas tentang HTML margin-left dan Contoh-contohnya bersama-sama dengan Pelaksanaan Kodnya.

Jadual Bersarang dalam HTML Jadual Bersarang dalam HTML Sep 04, 2024 pm 04:49 PM

Ini ialah panduan untuk Nested Table dalam HTML. Di sini kita membincangkan cara membuat jadual dalam jadual bersama-sama dengan contoh masing-masing.

Susun Atur Jadual HTML Susun Atur Jadual HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Susun Atur Jadual HTML. Di sini kita membincangkan Nilai Susun Atur Jadual HTML bersama-sama dengan contoh dan output n perincian.

Pemegang Tempat Input HTML Pemegang Tempat Input HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Pemegang Tempat Input HTML. Di sini kita membincangkan Contoh Pemegang Tempat Input HTML bersama-sama dengan kod dan output.

Senarai Tertib HTML Senarai Tertib HTML Sep 04, 2024 pm 04:43 PM

Panduan kepada Senarai Tertib HTML. Di sini kami juga membincangkan pengenalan senarai dan jenis Tertib HTML bersama-sama dengan contoh mereka masing-masing

Memindahkan Teks dalam HTML Memindahkan Teks dalam HTML Sep 04, 2024 pm 04:45 PM

Panduan untuk Memindahkan Teks dalam HTML. Di sini kita membincangkan pengenalan, cara teg marquee berfungsi dengan sintaks dan contoh untuk dilaksanakan.

Butang onclick HTML Butang onclick HTML Sep 04, 2024 pm 04:49 PM

Panduan untuk Butang onclick HTML. Di sini kita membincangkan pengenalan, kerja, contoh dan onclick Event masing-masing dalam pelbagai acara.

See all articles