Joomla on LiteSpeed: CSS and JavaScript 403 errors with query strings Joomla 3 to Joomla 6 with T3 and Purity III: a migration case study Website hacked? What to do first and mistakes to avoid How to import Excel into WordPress with a custom plugin ChatGPT Ads: Paid Advertising Is Challenging Google Ads Ecommerce localization in Italy: catalogue, checkout and technical support Italian web developer for website support and local coordination Italian website localization: more than translating web content Taking over an existing Italian website without rebuilding it Website localization in Italy: a technical guide for international companies WordPress Dashboard Won't Load: 8 Causes and How to Fix Them WordPress Not Working: What to Check Before Panicking WordPress Site Stuck After Update: How to Recover It WP-Admin Error 500: Common Causes and Effective Solutions How to Identify Which WordPress Plugin Is Really Slowing Down Your Site Without Guesswork Joomla on LiteSpeed: CSS and JavaScript 403 errors with query strings Joomla 3 to Joomla 6 with T3 and Purity III: a migration case study Website hacked? What to do first and mistakes to avoid How to import Excel into WordPress with a custom plugin ChatGPT Ads: Paid Advertising Is Challenging Google Ads Ecommerce localization in Italy: catalogue, checkout and technical support Italian web developer for website support and local coordination Italian website localization: more than translating web content Taking over an existing Italian website without rebuilding it Website localization in Italy: a technical guide for international companies WordPress Dashboard Won't Load: 8 Causes and How to Fix Them WordPress Not Working: What to Check Before Panicking WordPress Site Stuck After Update: How to Recover It WP-Admin Error 500: Common Causes and Effective Solutions How to Identify Which WordPress Plugin Is Really Slowing Down Your Site Without Guesswork

Joomla 3 TinyMCE: fix stripped HTML and editing problems

Author Graziano De Maio - Gdmtech
I wish you a good read and remember: if after reading this article you need help, don't hesitate to contact me.
Author: Graziano De Maio | Founder of Gdmtech
Table of contents

If TinyMCE removes an iframe or changes HTML in Joomla 3, identify when the change occurs: switching from source to visual mode, saving the article or displaying the public page. These stages involve different controls and require different corrections.

Do not disable every filter to preserve one fragment. Keep a content copy and reproduce the issue in a test article using the affected user’s group. Testing only as a Super User can conceal configuration differences.

Identify the stage changing the content

When the change occursLayer to investigate
Before savingEditor rules and HTML normalisation
After saving and reopeningJoomla filters and component save processing
Stored code remains but public output differsTemplate, content plugins and browser
Editor or toolbar will not loadScript loading and JavaScript errors

A visual editor may normalise HTML without losing the intended information. Compare relevant structure and attributes rather than whitespace alone. Removing an entire embed is different from rewriting equivalent markup.

Check the editor configuration applied to the user

Inspect the site’s default editor and any user-profile override. Confirm that the plugin is enabled and that the settings being examined belong to the installed Joomla release.

In Joomla 3 releases with TinyMCE configuration sets, inspect the set assigned to the user’s groups and its options. The Joomla 3.10.12 plugin configuration includes distinct sets; instructions for another Joomla branch may show different controls.

Record group, editor and set before comparisons. Different toolbars for two contributors may reflect configuration rather than a browser fault. Avoid replacing bundled TinyMCE files with an independent release that has not been validated with Joomla’s integration.

Separate editor processing from save-time filtering

Use protected staging and a minimal fragment without confidential data. For a video or map, retain the trusted provider’s embed and identify the tags and attributes actually required.

  1. Insert the fragment in source mode and preserve a separate copy.
  2. Switch to visual mode and back before saving.
  3. If it has already changed, inspect TinyMCE configuration.
  4. If it remains intact, save and inspect the stored content without introducing another visual-editor rewrite, using a nonvisual editor configured for the test where appropriate.
  5. Compare the public document and browser Console.

Switching editors is a diagnostic comparison, not an automatic fix. Server-side filters can remain active without TinyMCE. Components storing text in their own fields or tables may also apply their own processing.

Keep the same input and account throughout the sequence. Otherwise, differences in permissions or content can make the comparison inconclusive.

Adjust filters to the actual requirement

The Joomla guide to entering raw HTML distinguishes global filters from editor options. Prohibited elements, valid elements and the option to use Joomla filtering, where available, can affect TinyMCE output. Inspect the installed settings before copying a configuration from elsewhere.

Define the narrow requirement. Allowing a particular embed does not require permitting arbitrary scripts for every contributor. Consider authorised groups, content sources and necessary attributes while retaining restrictions for untrusted input.

For a hypothetical editorial group allowed to embed approved maps, test that group and an excluded user while preserving controls on other content. The Joomla 3 ACL guide explains the relevant membership checks.

Investigate invisible embeds when HTML is present

If the stored markup and browser response both contain the element, examine CSS, container dimensions and browser blocking messages. A remote service may prohibit embedding, insecure content may be blocked or a policy may prevent the resource from loading.

MDN’s X-Frame-Options documentation describes one control available to an embedded site. Changing Joomla filters does not remove restrictions imposed by that remote service.

For purely visual differences, compare editor styles with the site’s template CSS. The editing preview does not necessarily reproduce every frontend rule. Where a content plugin transforms the text, isolate its effect on staging without changing several variables at once.

Diagnose a toolbar that fails to load

Open the browser’s Network and Console panels, reload the editing screen and inspect failed scripts and the first relevant error. A successful HTTP response can still contain a login or blocking page instead of JavaScript, so inspect the body as well.

Compare recent extension and optimisation changes. Use Joomla extension isolation if the failure follows a particular combination. After correction, test creation, reopening and editing of existing content, not only an empty new article.

Joomla 3 is unsupported. Preserve editorial requirements and these acceptance tests for migration. If TinyMCE alters necessary content, I can review Joomla editors, filters and rendering to identify a configuration scoped to the actual requirement.

Author Graziano De Maio - Gdmtech
I wish you a good read and remember: if after reading this article you need help, don't hesitate to contact me.
Author: Graziano De Maio | Founder of Gdmtech