最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

TinyMCE粘贴HTML代码,避免style属性被自动清除_html/css

来源:动视网 责编:小采 时间:2020-11-27 16:06:05
文档

TinyMCE粘贴HTML代码,避免style属性被自动清除_html/css

TinyMCE粘贴HTML代码,避免style属性被自动清除_html/css_WEB-ITnose:TinyMCE在粘贴含有style属性的HTML代码时,会自动清除style属性,设置 extended_valid_elements 也只能在Firefox浏览器起作用,Chrome无效。 extended_valid_elements: 'div[style|class|id]' Chrome下即使设置了 inline
推荐度:
导读TinyMCE粘贴HTML代码,避免style属性被自动清除_html/css_WEB-ITnose:TinyMCE在粘贴含有style属性的HTML代码时,会自动清除style属性,设置 extended_valid_elements 也只能在Firefox浏览器起作用,Chrome无效。 extended_valid_elements: 'div[style|class|id]' Chrome下即使设置了 inline


TinyMCE在粘贴含有style属性的HTML代码时,会自动清除style属性,设置 extended_valid_elements 也只能在Firefox浏览器起作用,Chrome无效。

extended_valid_elements: 'div[style|class|id]'

Chrome下即使设置了 inline_styles: true, schema: 'html5', 也没有用

无奈去看TinyMCE源码,发现如果去掉 plugins 里的 paste 就不会被剔除样式,最终在 plugin/paste/plugin.js 里找到这样一段代码:

function addPreProcessFilter(filterFunc) { editor.on('BeforePastePreProcess', function(e) { e.content = filterFunc(e.content); }); }

估计是在这里过滤的,找到 filterFunc这个函数:

// Sniff browsers and apply fixes since we can't feature detect if (Env.webkit) { addPreProcessFilter(removeWebKitStyles); } if (Env.ie) { addPreProcessFilter(removeExplorerBrElementsAfterBlocks); }

看到这里我震惊了,TinyMCE真的这么狗屎吗?就直接检测了webkit和ie,Firefox被无视了吗?Firefox下的style被保留是因为TinyMCE的开发人员根本没有考虑Firefox浏览器,我还以为是Chrome下出了什么bug,真够狗屎的。

在进去这个 removeWebKitStyles函数里:

// Filter away styles that isn't matching the target node var webKitStyles = editor.settings.paste_webkit_styles; if (editor.settings.paste_remove_styles_if_webkit === false || webKitStyles == "all") { return content; }

很明显,只要设置一下这个属性就可以

paste_webkit_styles: true

看了TinyMCE的源代码,写的真叫一个烂,全局变量没有加任何标识区分本地变量,函数和语句混合在一起。

文档

TinyMCE粘贴HTML代码,避免style属性被自动清除_html/css

TinyMCE粘贴HTML代码,避免style属性被自动清除_html/css_WEB-ITnose:TinyMCE在粘贴含有style属性的HTML代码时,会自动清除style属性,设置 extended_valid_elements 也只能在Firefox浏览器起作用,Chrome无效。 extended_valid_elements: 'div[style|class|id]' Chrome下即使设置了 inline
推荐度:
标签: 自动 清除 代码
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top