web-dev-qa-db-fra.com

Éditeur se déshabillant iframe

Oui, une autre question à propos de la suppression des balises HTML (cette fois, TinyMCE).

Joomla 3.4.1/TinyMCE 4.1.7

Cela devrait être très simple, mais vu le nombre de commentaires et de questions/réponses que je vois déjà, je suppose que je ne suis pas le seul à être confronté à ce problème. Il y a une question similaire ici Cependant, je ne pense pas que la réponse acceptée soit une résolution (très bon travail cependant).

Mon problème ne concerne cependant que les iframes. Le processus est le suivant.

Je copie un code youtube> collez-le dans l'éditeur TinyMCE> il apparaît comme ceci;

<iframe width="560" height="315" src="https://www.youtube.com/embed/Qjnc0H8utks" frameborder="0" allowfullscreen></iframe>

Je clique immédiatement toggle editor> il apparaît comme ceci;

<p>&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/Qjnc0H8utks" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;</p>

Ce que j'ai essayé jusqu'à présent

  • supprimé iframe de TinyMCE prohibited elements dans les paramètres du plugin
  • ensemble no filtering pour super utilisateur dans les paramètres globaux
  • Collé le code suivant dans TinyMCE Extended Valid Elements

    iframe[src|style|width|height|scrolling|marginwidth|marginheight|frameborder]

  • cache joomla effacé

  • cache du navigateur effacé
  • essayé divers navigateurs
  • essayé divers modèles

L'iframe fonctionne avec aucun éditeur ou CodeMirror, mais ils ne sont pas des options, je dois utiliser TinyMCE à cette occasion.

Avez-vous une idée de ce qui passe? Je suis perdu!

6
jonboy

J'ai peut-être mal compris votre question, mais vous dites:

Je copie un code youtube> collez-le dans l'éditeur TinyMCE> il apparaît comme ceci

et

Je clique immédiatement sur bascule éditeur> il apparaît comme ceci;

Veuillez noter que si vous collez du code HTML dans la fenêtre standard de TinyMCE, il sera converti en entités HTML (< devient &lt;, > devient &gt; etc).

Vous devez le faire à l'inverse : Premier clic Toggle editor, puis collez votre code et basculez à nouveau l'éditeur. C’est à ce moment que TinyMCE nettoiera votre code si nécessaire, et dans votre cas, supprimez le <iframe> élément pour deux raisons:

  1. Parce que par défaut, iframe est répertorié comme élément interdit dans les paramètres du plug-in (comme vous l'avez mentionné).
  2. Parce que les balises vides sont supprimées par défaut (il n'y a pas de contenu entre l'ouverture <iframe>tiquette et la fermeture </iframe>. Ceci est bien sûr correct pour les iframes, mais pour TinyMCE, il ne s'agit que d'une balise vide, donc inutile.

J'ai fait un test rapide et avec les paramètres suivants dans les paramètres du plug-in TinyMCE, cela devrait fonctionner:

  1. Supprimer iframe de la liste des éléments interdits
  2. Ajouter iframe[*] à la liste "Eléments valides étendus":

TinyMCE settings to allow iframes

Sauver et fermer. Maintenant, éditez votre article, cliquez sur le bouton "Basculer l'éditeur" et collez votre code. Après avoir cliqué à nouveau sur "Basculer l'éditeur", vous devriez voir quelque chose comme ceci:

Working iframe in TinyMCE

Enregistrez votre article, cliquez à nouveau sur "Basculer l'éditeur" et vérifiez que votre code iframe est toujours intact.

J'espère que ça marche.

5
johanpw

J'ai eu beaucoup de difficulté avec cela jusqu'à ce que je réalise que vous devez sélectionner le jeu de panneaux TinyMCE approprié avant de modifier les éléments interdits. Choisissez l'ensemble affecté à administrator et editor.

[1]

3
user219626