You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel框架下TinyMCE自动删除iframe内容该如何解决?

TinyMCE 阻止iframe被自动清除的解决步骤
  • 首先修正TinyMCE前端配置,不要只单独设置extended_valid_elements,确保以下参数都正确配置:
tinymce.init({
  // 保留你原有的其他配置项
  // 1. 明确将iframe纳入有效元素范围
  valid_elements: '*[*]', 
  // 若需要严格控制属性,可替换为指定属性的写法:iframe[src|width|height|frameborder|allow|allowfullscreen]
  // 2. 配置iframe允许的所有属性,避免iVoox平台的特殊属性被过滤
  extended_valid_elements: 'iframe[*]',
  // 3. 检查invalid_elements配置,确保没有把iframe加入无效元素列表,有则删除列表中的iframe
  // invalid_elements: 'iframe,script' 错误写法,需要移除iframe
  // 4. 配置保护规则,让TinyMCE跳过对iframe标签的清理
  protect: [
    /<\/?iframe[^>]*>/g
  ],
  // 5. 若为粘贴插入iframe,关闭过度的粘贴过滤
  paste_enable_default_filters: false,
  paste_remove_styles: false,
})
  • 检查Laravel后端的内容过滤逻辑:
    多数情况下前端TinyMCE已经保留了iframe内容,但是提交后被后端过滤规则清除:
    • 检查是否使用了laravel-htmlpurifier等第三方XSS过滤包,在对应配置文件的允许标签列表中加入iframe,同时配置允许iframe的相关属性
    • 检查模型修改器、全局中间件中是否有自定义的标签清理逻辑,排除对iframe标签的过滤
    • 前端输出富文本内容时,不要使用{{ }}自动转义语法,要使用{!! $content !!}语法才能完整保留HTML标签

内容的提问来源于stack exchange,提问作者Bernadí Mateu Gomila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:21:00