网页编辑器是个不错的东西,在很多时候都需要使用到,用来编辑各种文本。然而使用网页编辑器却会存在一些各种各样的问题,解决这些问题总会让人头疼。

最近使用编辑器编写正文,在需要再在前台展示的时候发现样式冲突的厉害。然而又没有办法清除原有的样式,只能将整个需要显示的内容和当前的页面隔离开才能使用完整的编辑器样式。下面说下两种展示的方法,可以完整的显示编辑器样式。

1.使用原有编辑器进行再展示

编辑器编辑的东西,在编辑器内再显示一定是所见即所得。因此,使用编辑器再显示原本的内容只需要再次调用编辑器,把内容写入,清掉不需要的插件,最后把编辑器设置为不可编辑即可。下面以ueditor为例:

<!--页面调取editor-->
<script id="editor" name="content" type="text/plain" style="width:99.9%;min-height:350px;height:100%;"></script>
<script type="text/javascript">
var ue = UE.getEditor('editor',{toolbars: [],autoHeightEnabled: true,autoFloatEnabled: true,enableAutoSave: false,readonly:true,wordCount:false});ue.addListener("ready", function () {var content = '${mail.content}';ue.setContent(content);});
</script>

设置为只读,把辅助编辑的功能全部去除,再把内容置入即可。

这么做保证了原滋原味,羊毛出在羊身上,编辑的内容是什么样子,展示的也会一模一样。

2.使用iframe进行页面嵌入

iframe加载的页面和当前页无关,样式自然页不会有冲突,可以很好的展示编辑器编辑完成的html代码样式,当然,还是会有些微的不同,但大致基本是一致的。

使用iframe的好处就是不需要再在页面构造一个编辑器,毕竟编辑器的样式,页面内控件调整较为复杂。下面为iframe展示的想法:

<!--创建一个空的iframe,不需要指定地址-->
<iframe name="cmsCon" id="cmsCon" class="cmsCon" frameborder="0" width="100%" scrolling="no" height="auto"></iframe>
<script type="text/javascript">
$('#cmsCon').contents().find('body').html('展示内容');
autoHeight();  //动态调整高度var count = 0;var autoSet = window.setInterval('autoHeight()',500);function autoHeight(){var mainheight;count++;if(count == 1){mainheight = $('.cmsCon').contents().find("body").height()+50;}else{mainheight = $('.cmsCon').contents().find("body").height()+24;}$('.cmsCon').height(mainheight);if(count == 5){window.clearInterval(autoSet);}}
</script>

iframe高度需要依据内容的高度进行动态的加载,因为展示的时候没有使用滚动条,也没有初始化高度(不使用滚动条初始化高度没有意义)。

在上面提供的动态调整高度的方法存在一个缺陷,就是如果展示的内容中包含图片,那么会因为图片的加载延时导致一开始获取的高度不足,从而导致图片无法完整的加载。这个问题我想了很久也没有找到合适的方法来解决。因为内容是动态写入,iframe不是展示一个全新的页面,只是我们对这个iframe进行了内容设置,所以做起修改非常的麻烦。因此我做了一个方法的循环调用,多次设定高度,这样就能在页面图片加载完成后进行正确的高度获取。(动态写入内容,导致了load事件不会触发...)
网上也有不少动态调整高度的方法,也值得借鉴。

编辑器生成的html代码再显示的样式冲突问题相关推荐

  1. 百度在线编辑器 显示html,UEditor百度编辑器中JS/html代码(script标签)被过滤的解决办法...

    作为一名程序员,在文章中经常会插入各种代码,大部分代码都不会发生问题,但div和script标签是经常会被使用到的. 而在之前的文章编写过程中,插入JS代码后,第一次文章会显示正常,而之后在后台编辑器 ...

  2. 利用iconfont.css生成html代码,显示iconfont里面的所有的图标

    开发时,一个同事问我,遇到历史项目中的iconfont,不知道里面有哪些图标. 于是我便利用nodejs,来根据css生成html显示里面的所有图标.首先用webstorm格式化css代码 ,然后再在 ...

  3. linux进去vi编辑器执行c语言代码,VI编辑器的使用与Linux操作系统下C语言的使用...

    一.实验题目 Linux操作系统下C语言的使用 二.实验课时 2课时. 三.实验目的:熟悉Linux操作系统下c语言的使用. 四.实验内容 学习Linux环境下gcc的使用: 观察进程运行情况和CPU ...

  4. GitHub开源:一键生成前后端代码神器

    目录 1.技术架构 2.微服务架构图 3.业务应用 本篇博客将为朋友们分享一款神器:JeecgBoot. JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发.采用前后端分离架构:Sp ...

  5. 无需写代码!可一键生成前后端代码的开源工具

    作者 | HelloGitHub-小鱼干 来源 | HelloGitHub(ID:GitHub520) JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发.JeecgBoot 采用开 ...

  6. 编译hotspot_从Hotspot JIT编译器打印生成的汇编代码

    编译hotspot 有时,在对Java应用程序进行性能分析时,有必要了解Hotspot JIT编译器生成的汇编代码. 这对于确定已做出的优化决策以及我们的代码更改如何影响生成的汇编代码非常有用. 在调 ...

  7. PowerDesigner(九)-模型文档编辑器(生成项目文档)

    模型文档编辑器 PowerDesigner的模型文档(Model  Report)是基于模型的,面向项目的概览文档,提供了灵活,丰富的模型文档编辑界面,实现了设计,修改和输出模型文档的全过程. 模型文 ...

  8. javadoc文档的生成方法_Cocoa 代码注释与文档生成

    Cocoa 代码注释与文档生成 本文的文档规范部分的内容参考自:NSHipster 的 Swift Documentation 作者 & Nate Cook 本文知识目录 背景 曾经以为好的代 ...

  9. 一款无需写任何代码即可一键生成前后端代码的开源工具

    JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发.JeecgBoot 采用开发模式:Online Coding 模式-> 代码生成器模式-> 手工 MERGE 智能开发 ...

最新文章

  1. ios转向前端进阶之:html标签类型
  2. 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第二步)(4)...
  3. Rus入门到放弃——字符串与字符切片
  4. 赞!Google 资深软件工程师 LeetCode 刷题笔记首次公开
  5. Codeforces Round #633 B. Edge Weight Assignment 结论题 + dp
  6. 你生孩子的时候有什么神奇的经历吗?
  7. 网站锁定php文件命令,PHP文件的锁定机制
  8. paip.win32的internet扩展已停止工作解决大法
  9. MediaCodec解码aac
  10. Raspberry Pi 树莓派切换国内源
  11. java poi pdf 导出
  12. c语言以16进制输出大写字母,C语言二进制、八进制、十六进制整数书写和输出...
  13. 百度地图开发技术方案及解决办法
  14. LeetCode-108
  15. 一、Qt初尝试,做一个QT计算器《QT 入门到实战》
  16. 渭南师范计算机学院男女比例,全国高校男女比例大揭秘!去这些大学怕是要单身四年了...
  17. 那些年使用appium-Uiautomator2遇到的问题解决方法!
  18. 百度竞价账户层级及基本设置
  19. JNCIP案例分析 - Juniper/Cisco OSPF互操作 Part1
  20. 科研信息基础设施的运行治理模式研究

热门文章

  1. 同济大学软件学院院长谈择业—关于嵌入式方向
  2. 神仙级编程神器,吹爆!
  3. 第三方系统对接的设计思路(案例分享)
  4. java汽车美容管理计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  5. 使用sentinelsat包和IDM批量下载offline的sentinel数据
  6. 荣耀笔记本自带linux软件,如何在荣耀笔记本(Linux 版)中拥有 deepin 应用商店?...
  7. 通常 在微型计算机中3.0ghz所指的是,太原理工大学测验《大学计算机基础》A考题.doc...
  8. 好雨科技发布SaaS应用市场“云市” 做软件厂商与用户的连接器
  9. Adobe XD下载以及探索
  10. JS中各种姿势的遍历,你知道几个?