2010-10-31 22 views
2

J'ai un problème avec mon éditeur WYSIWYG. Si les utilisateurs copient dans le texte en dehors, cela est considéré comme quelque chose comme ce qui suit:Suppression de styles externes de l'éditeur jQuery WYSIWYG en PHP

"p.p1 {margin: 0.0px 0.0px 0.0px 0.0px ; police: 11.0px 'Lucida Grande'; min- height: 13.0px} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; police: 11.0px 'Lucida Grande'} Seules les variables affectées dans la dernière boucle sont accessible depuis l'extérieur d'un foreach boucle."

Ceci est évidemment problématique. En outre, il semble qu'il y ait un problème avec les sauts de ligne, c'est-à-dire <br />. Parfois, ils sont ramassés, parfois non.

que je suis en cours d'exécution à travers le contenu strip_tags() comme ceci:

<?php 
$body = strip_tags($body, '<a><br><b><i><img><ul><ol><li>'); 

Toute réflexion sur ce qui se passe ici?

Si cela aide, j'utilise jWYSIWYG pour l'éditeur.

+1

S'il vous plaît préciser si vous êtes faire quelque chose au contenu de l'éditeur avec jQuery? Si oui, veuillez fournir des détails – Cez

+1

Non. Le contenu de l'éditeur se trouve dans un iFrame et est donc difficilement inaccessible à jQuery, excepté à travers l'éditeur jWYSIWYG lui-même.Je ne peux accéder au contenu qu'à travers ses propres méthodes getContent et setContent. –

+3

Je ne sais pas si je vous ai mal compris, mais vous pouvez accéder au contenu à partir du parent, par ex. $ ('# wysiwyg-frame'). contents(). find ('body #wysiwyg'). val(). Êtes-vous en mesure de poster du code/un lien? – Cez

Répondre

0

Le code suivant a finalement obtenu ce travail pour moi:

$('iframe').ready(function() { 
    $(this).contents().find('.wysiwyg').find('iframe').contents() 
    .find('.wysiwyg').bind('paste', function() { 
     // Completely strips tags. Taken from Prototype library. 
     var el = $(this); 
      var strClean = el.text().replace(/<\/?[^>]+>/gi, ''); 
      el.text(strClean); 
     }, 0); 
    }); 
}); 

Vous pouvez le voir en action à http://jsfiddle.net/v4LhV/3/

2

En ce qui concerne votre question sur strip_tags():

php > $str="<br><br/><br />"; 
php > echo strip_tags($str, "<br>"); 
<br><br /> 

Y at-il une chance que <br/> est utilisé et étant omis? Si c'est le cas, ajoutez <br/> à strip_tags(), par ex.

php > $str="<br><br/><br />"; 
php > echo strip_tags($str,'<br><br/>'); 
<br><br/><br /> 
+0

Bonne idée d'inclure «
» et «
». Malheureusement, cela semble ne rien changer. –

0

Je pense que le problème de suivi pour jwysiwg a des commentaires liés à ce pour le nettoyage côté navigateur.