En outre, côté serveur, des outils comme l'ordre, vous pouvez également utiliser le navigateur de l'utilisateur pour faire le nettoyage pour vous. L'un des très grandes choses au sujet de innerHTML
c'est qu'il va appliquer le même à la volée de réparation de contenu dynamique comme il le fait pour les pages HTML. Ce code fonctionne très bien (avec deux mises en garde), et rien n'est écrit à la page:
var divTemp = document.createElement('div');
divTemp.innerHTML = '<p id="myPara">these <i>tags aren\'t <strong> closed';
console.log(divTemp.innerHTML);
Les mises en garde:
Les différents navigateurs seront de retour des différentes chaînes. Ce n'est pas si mauvais, sauf dans le cas de l'ei, qui sera de retour en majuscule balises et dépouiller les citations des attributs de la balise, ce qui ne sera pas validée. La solution ici est de faire une simple opération de nettoyage sur le côté serveur. Mais au moins, le document est bien structuré XML.
Je soupçonne que vous pourriez avoir à mettre un délai avant la lecture de la innerHTML -- donner le navigateur l'occasion de digérer la chaîne -- ou vous risquez de retrouver exactement ce qui a été mis dans. J'ai juste essayé sur IE8 et il semble que la chaîne est analysée immédiatement, mais je ne suis pas sûr que sur IE6. Il serait probablement préférable de lire le innerHTML, après un retard (ou de le jeter dans un setTimeout() pour forcer à la fin de la file d'attente).
Je vous recommande de prendre @Gordon des conseils et de l'utiliser en ordre si vous avez accès à celle-ci (il faut moins de travail pour mettre en œuvre) et, à défaut, utiliser innerHTML et écrire votre propre bien rangé fonction en PHP.
Et même si ce n'est pas une partie de votre question, que ce soit pour un CMS, pensez également à utiliser le YUI 2 l'Éditeur de Texte enrichi pour des trucs comme ça. Il est assez facile à mettre en œuvre, plutôt facile à personnaliser, l'interface est très familier à la plupart des utilisateurs, et il crache parfaitement valable code. Il y a plusieurs autres hors-la-plateau riche éditeurs de texte, mais YUI a la meilleure licence et est le plus puissant que j'ai vu.