Maison >interface Web >js tutoriel >Une brève analyse des principes de mise en œuvre des compétences en ligne WYSIWYG HTML editor_javascript
De nos jours, le développement de sites Web favorise de plus en plus l'expérience utilisateur, et il existe de plus en plus d'outils pour offrir plus de commodité aux utilisateurs, et l'éditeur de contenu HTML en ligne doit être considéré comme l'un des « plus anciens ». Ceux dotés de fonctions simples peuvent fournir aux utilisateurs un contrôle du style de texte, tel que la couleur du texte, la taille de la police, etc., tandis que ceux dotés de fonctions complexes peuvent même fournir des fonctions puissantes similaires à Word. Bien qu'il existe désormais de nombreux éditeurs open source, peu d'entre eux sont vraiment faciles à utiliser, leur travail d'amélioration est donc toujours en cours.
La plupart des éditeurs sur Internet ont aujourd'hui des fonctions très puissantes, elles nécessitent également beaucoup de configuration lors de leur utilisation. Bien entendu, le code sera naturellement "gonflé". Si nous n’avons pas besoin d’un éditeur aussi puissant, nous pouvons en implémenter un nous-mêmes, car le code n’est pas compliqué. Ce qui suit est un peu d'expérience personnelle, à titre de référence uniquement (en prenant ExtJS HTMLEditor comme exemple).
1. Initialisation. Une fois le chargement de la page terminé, ajoutez un IFrame à la page (facultatif). Ce qu'il faut noter ici, c'est que pour déterminer l'état de la page, attendez que la page soit complètement chargée avant de procéder pour éviter des erreurs dans lesquelles certains éléments ne peuvent pas être trouvés.
2. Ouvrez la fonction d'édition. Rendre l'IFrame modifiable (le code ci-dessous provient de l'éditeur HTML d'ExtJS) :
//Récupérer l'objet document de l'iframe
getDoc : fonction(){
return Ext.isIE ? this.getWin().document : (this.iframe.contentDocument || this.getWin().document);
},
//Ouvrez l'objet document et écrivez-y le contenu d'initialisation pour qu'il soit compatible avec FireFox
doc = this.getDoc();
doc.open();
doc.write('
De cette façon, vous pouvez écrire du contenu dans cet éditeur simple.
3. Récupérez le contenu de l'éditeur, le code est le suivant :
//Retourner le contenu
renvoyer le contenu ;
4. Ajoutez des paramètres de style. Bien que l'éditeur ci-dessus implémente des fonctions de base, il est vraiment trop simple. Certaines implémentations de style simple devraient être ajoutées. La méthode execCommand du document rend cette idée possible.
//Changer la police sélectionnée en gras, Ctrl-B
execCmd('gras');
//Souligner, Ctrl-U
execCmd('soulignement');
// Passage en italique, Ctrl-I
execCmd('italique');
//Définissez la couleur du texte
execCmd('forecolor', Ext.isSafari || Ext.isIE ? '#' color : couleur);
//Insérer un élément de contenu au niveau du curseur
fonction insertAtCursor(text){
//Pour obtenir l'objet win, référez-vous au code ci-dessus
si(Ext.isIE){
win.focus();
var r = doc.selection.createRange();
Si(r){
r.collapse(true);
r.pasteHTML(text);
}sinon si(Ext.isGecko || Ext.isOpera){
win.focus();
execCmd('InsertHTML', texte);
}sinon si(Ext.isSafari){
execCmd('InsertText', texte);
>
>
//Souligner
doc.queryCommandState('underline');
//italique
doc.queryCommandState('italic');
Un dernier rappel : veillez à faire attention aux problèmes de compatibilité des navigateurs et n'attendez pas la fin pour tester la compatibilité. Pour une si grande quantité de code JavaScript, les ajustements sont plus pénibles.