
在 Joomla 用 JCE 編輯器寫文章,切到原始碼模式貼上一段 HTML,存檔後卻發現:
- 段落最後刻意加的
<br>不見了 - 嵌入 YouTube、Google 地圖的
<iframe>被刪掉 <script>整段消失- 用來顯示圖示的空標籤(例如
<i class="icon"></i>)被清掉
會刪標籤的其實有兩個不同的地方,要先分清楚是誰刪的,才能對症下藥。
先分辨:是 JCE 刪的,還是 Joomla 刪的?
- JCE 編輯器:在瀏覽器裡就先把它認為不合規則、多餘的標籤清掉。特徵是切換原始碼模式再切回來,或還沒按儲存,標籤就已經不見了。
- Joomla 的文字過濾器:存檔時在伺服器端依照使用者群組,把不允許的標籤過濾掉。特徵是不管用哪個編輯器都一樣會被刪。
最簡單的測試方法:到「使用者」管理裡編輯自己的帳號,把「基本設定」(Basic Settings)裡的編輯器暫時換成「Editor - None」或「Editor - CodeMirror」,貼上同一段 HTML 再儲存一次。
- 換了編輯器就正常:是 JCE 刪的,看情況二。
- 換了還是被刪:是 Joomla 的文字過濾器,看情況一。
情況一:Joomla 文字過濾器刪掉的
Joomla 為了安全,會依照使用者群組過濾文章裡的 HTML。套用「預設禁止清單」(Default Forbidden List,舊版稱為 Default Black List)的群組,<iframe>、<script>、<object>、<embed> 這類標籤在存檔時就會被刪掉。
調整方法:
- 到「系統 → 全域設定」(System → Global Configuration),切到「文字過濾器」(Text Filters)分頁。
- 找到你的帳號所屬的群組,看目前的過濾類型。
- 只有確定需要時,才把該群組改成「不過濾」(No Filtering)。
- 儲存後,重新貼上 HTML 存檔確認。
安全提醒:「不過濾」代表這個群組的帳號可以在文章裡放任何程式碼。只開給信任的管理帳號,一般投稿者、會員群組不要開,否則有人可以在文章裡插入惡意程式。
情況二:JCE 編輯器刪掉的
JCE 是以 TinyMCE 為基礎的編輯器,會自動清理它認為不合規則的 HTML。調整的地方在 JCE 元件裡:
- 到「元件 → JCE 編輯器」(Components → JCE Editor)。
- 進入「設定檔」(Profiles),打開你的使用者群組所套用的設定檔。
- 在設定檔的編輯器參數裡,找和 HTML 清理、輸出有關的設定,以及是否允許 JavaScript、iframe 這類選項,只打開你真正需要的那幾項。
不同版本的 JCE 介面與選項名稱不太一樣,找不到的話可以參考 JCE 官方網站的說明文件。不建議為了一個標籤就把整個 HTML 清理功能關掉,只放行需要的就好。
段落結尾的換行標籤被刪
JCE 預設會把區塊最後面的 <br> 移除,例如 <p>第一行<br></p> 存檔後會變成 <p>第一行</p>。這是 TinyMCE 的 remove_trailing_brs 設定造成的,預設是開啟的。
這篇文章舊版的做法,是在 JCE 的全域設定(Global Configuration)裡新增一組自訂設定變數(Custom Configuration):
Key: remove_trailing_brs
Value: false設定後,單獨的 <br> 就會被保留。自訂設定變數的欄位位置會因 JCE 版本而不同,如果全域設定裡找不到,請查詢你所用版本的官方文件。
不過,如果目的只是讓段落之間多一點空白,比較好的做法是用 CSS 調整段落間距,而不是一直加 <br> 或空段落。以 Joomla 4/5 內建的 Cassiopeia 樣板為例,可以在樣板的 user.css 加上:
.com-content-article__body p {
margin-block-end: 1.5em;
}空的標籤被清掉
<i class="fa fa-phone"></i> 這種沒有內容、只靠 CSS 顯示圖示的標籤,編輯器常把它當成多餘的空標籤刪掉。可以:
- 在標籤裡放一個空白字元(
),讓它不是「空的」。 - 改用圖片或 SVG 圖示。
- 把圖示放在樣板或模組裡,不要放在文章內文中。
script 和 iframe,適合放在文章裡嗎?
就算調整設定讓 <script> 能存進文章,也不建議把追蹤碼、聊天工具這類程式碼放在文章內容裡:
- 每次用編輯器修改文章,都有可能再被清理一次。
- 換編輯器、升級 JCE 或 Joomla 後,設定可能不同,程式碼會莫名其妙消失。
- 全站都要用的程式碼(例如 Google Analytics),應該放在樣板或使用專門的擴充套件。
只在某一頁使用的嵌入內容(地圖、影片),可以做成「自訂」(Custom)模組,再指定只顯示在那一頁,之後要修改也比較好找。
延伸閱讀
- Joomla 樣板覆寫(Template Override)教學:不改核心,修改文章與模組的輸出
- Joomla 白畫面(空白頁)怎麼辦?從錯誤記錄到擴充套件衝突的完整排查順序
- Joomla 儲存文章失敗「The table '#__finder_tokens' is full」:智慧搜尋造成的錯誤與解法
編輯器和過濾器的設定,關係到網站內容好不好維護,也關係到安全。正威網路行銷是 25 年經驗的基隆網頁設計工作室,提供客製化網頁設計與網站維護託管,歡迎來聊聊。







發表留言
還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。