html代码编辑器sp,在线HTML编译,文本关键字高亮显示,富文本编辑实现大概思路...

????最近被安排做了一个HTML在线编译功能,也利用这个机会对HTML在线编译,关键字高亮,富文本编辑器等的实现做了一些比较表面的研究,做简要记录,以便再次遇到作为参考。

????在线HTML编译

????首先需要一个能够输入及展示HTML代码的文本框,若只是显示普通HTML代码,使用即可(w3school在线编译功能即如此)。若还要在其中实现标签及关键字高亮,则使用

(百度在线编译功能),这里需要将
设置为contentEditable="true",将其设置为可编辑状态。

????使用实现,textarea为代码输入框,旁边需要一个iframe来展示代码运行结果。

????核心JS代码:

????function run(){

var iframeContent=$(".mysource").val();

var iFrame=document.getElementById("container").contentWindow;

iFrame.document.open();

iFrame.document.write(iframeContent);

iFrame.document.close();

}

????var iframeContent=$(".mysource").val()来获取textarea内容;

????var iFrame=document.getElementById("container").contentWindow得到iframe对象;

????iFrame.document.write(iframeContent)将textarea内容写入iframe得到结果。

????若涉及到从外部向textarea导入代码,可考虑设置不可见iframe在textarea之前,iframe中也需设置textarea,获取iframe中textarea内容,并将其赋给显示代码处的textarea,核心代码如下:

????function go1(){

????var win = document.getElementById(‘demo1‘).contentWindow.document.getElementById(‘code‘).value;

????document.getElementById("mysource").value=win;

}

????文本关键字高亮

????通常用

来实现,核心思想为获取div中文本,并用设置了高亮的相同内容替换之。

????核心JQ代码:

????$(document).ready(function() {

???? var key = "高亮字";

???? $("#keyword").html(function() {

???? return $(this).text().replace(key,""+key+"");

???? });

????多关键字:

????

txt.innerHTML = txt.innerHTML.replace(/(文章)|(关键字)|(功能)/gi,"$1$2$3");

txt为div。

????富文本编辑器

????富文本编辑器往往需要对字体大小,颜色,插入图片,表情等做众多改变,目前用得最多、兼容性最好的还是iframe方式。

????先将iframe标签通过:

????var edit=document.getElementById("myedit").contentWindow;

????edit.document.designMode="On";

????edit.document.contentEditable="ture";????

将其设置为可编辑状态。换而言之,HTML在线编辑器就是一个可编辑的iframe。

具体功能实现:

浏览器已经提供了实现这些功能的接口execCommand:

iframe.contentWindow.document.execCommand(cmd, isDefaultShowUI, value);

????execCommand具体使用参见下篇博文。

????

????以上为在线HTML编译,文本关键字高亮,富文本编辑器实现大致思路,由于他们功能看似类似,实则不然,所以放在一起以便对比讨论。

????新手,欢迎高手批评指正。

原文:http://www.cnblogs.com/xiangxs/p/5120574.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

numpy 平方_NumPy入门指南

本文介绍了NumPy的基础知识,NumPy是使用Python进行科学计算的软件包。我们将在此处介绍几类基本的数组操作: 创建NumPy数组 重塑数组 NumPy的数学运算 数组的索引和切片 遍历数组首先,让我们将NumPy导入为np。 这使我们可以使用快捷方式np来引…

android 揭示动画_揭示垃圾收集暂停的时间长度

android 揭示动画有几种方法可以改善您的产品。 一种这样的方法是仔细跟踪用户的体验并在此基础上进行改进。 我们确实自己应用了此技术,并再次花了一些时间查看不同的数据 除了我们追求的许多其他方面之外,我们还提出了一个问题“延迟GC触发应用程序的…

10 张程序员喜爱的壁纸,需要自取~

喜欢的话就请点个再看,分享到朋友圈吧~

iptables 开放远程_JavaWeb项目的部署以及远程调试

不点蓝字,我们哪来故事?Linux环境下软件的安装Linux环境下的程序的安装、更新、卸载和查看。rpm 命令:相当于windows程序的添加/卸载程序,进程程序的安装,查看,卸载。本地程序安装:rpm -ivh 程序…

计算机网络应用基础论文,计算机网络应用基础概述论文

如今计算机网络技术应用的范围比较普遍,已经渗透到了人们工作和生活的各个方面。计算机网络的应用代表着社会进入了一个全新的时代,是生产力发展到一定阶段的产物。下面是答.案.网 ZQNf.Com小编给大家推荐的计算机网络应用基础概述论文,希望大…

java 性能调优_Java性能调优调查结果(第一部分)

java 性能调优我们在2014年10月进行了Java性能调优调查。该调查的主要目的是收集对Java性能世界的见解,以改善Plumbr产品。 但是,我们也很高兴与您分享有趣的结果。 我们收集的数据为进行冗长的分析提供了素材,因此我们决定将结果划分为一系列…

wps生成正态分布的随机数_量子计算与机器学习: 量子生成对抗网络QGAN

随着量子信息和量子计算的快速发展(经费多了),科研工作者们一边感叹着量子计算机时代即将拥有的强大计算能力,一边又在考虑着如何将现有的高效算法和量子计算机相适配。作为最近几年如此火爆的机器学习,也就自然而然地…

通过反汇编来理解restrict关键字

一次难忘的面试经历多年前,一次互联网某厂实习生的面试题,题目的代码片段很简单,如下:1 #include 2 int main()3 {4 int *restrict pInt (int*)malloc(4);5 int *pNewInt pInt;6 return 0;7 } 12345678面试官问…

python车牌识别系统开源代码_汽车牌照识别系统【YOLO+MLP】

车牌识别系统可以自动检测并识别图像中的车辆牌照,其算法主要包括牌照定位、牌照分割、字符识别等步骤。本文将给出一种基于深度学习的车牌识别系统方案。要快速掌握开发人工智能系统的技能,推荐汇智网的 机器学习系列在线课程由于可以自动地从视频图像中…

幻灯片演示什么模式最好_清洁单元测试图案–演示幻灯片

幻灯片演示什么模式最好我有机会在2014年GDG DevFestKarlsruhe会议上谈论“清洁单元测试模式”。 感谢组织者邀请我,也感谢所有听我讲话的人。 如所承诺的,我为那些想看一下我在演讲中没有讲过的其他幻灯片的人分享了演示文稿: 清洁单元测试…

js text 和 html,JS DOM innerText和textContent的区别

innerText和textContent很多人会困惑,因为都可以用来获取文本内容,实际上,两者还是有很多区别的,本文就将介绍这两个属性的异同,希望可以对大家的学习有所帮助。一、之前错误的认识innerText IE6就开始支持&#xff0c…

如何用耳机翻页_游戏耳机的经典之作—罗技(G)Astro A40体验

前言经常去网吧玩游戏的朋友,在家玩如果没有头戴式耳机,那体验真的会差一大截。优秀的电竞游戏耳机会带来更好的游戏体验,不仅是舒适性。像绝地求生这类FPS游戏,游戏耳机会让听声辩位更容易更精确。最近因为大促降价入手的罗技&am…

我改了500个Bug,但是!!

IT程序猿 微博网友评论:空白一页blank:不写bug怎么改bug 抠Bee:不经意间病毒都出来了我在海的这边你在哪里丫:好了,发给开发小弟了富贵小小神仙:要不然呢,那些从开发到维护的程序员不都是靠这么…

jboss maven_使用Maven配置JBoss / Wildfly数据源

jboss maven大多数Java EE应用程序在其业务逻辑中使用数据库访问,因此开发人员经常面临在应用程序服务器中配置驱动程序和数据库连接属性的需求。 在本文中,我们将使用Maven为JBoss / Wildfly和Postgre数据库自动化该任务。 这项工作是根据我从以前的魔兽…

globalmapper如何选取图像上的点_OpenCV 进阶应用,用编程手段搞定图像处理

在我们生活中,常见的图像处理软件有Adobe Photoshop、Adobe Illustrator等。然而,并非只有软件才能实现图像处理,通过编程手段也是能实现的!通过编程手段实现图像处理,也就是计算机视觉。所谓计算机视觉,就…

pytorch relu函数实现_什么是pytorch?

PyTorch是一个:机器学习框架,简单易学可以看做是支持GPU计算和自动微分计算的“Numpy”库支持100多种Tensor常规算子,包括:创建、索引、切片、转置、连接、随机数、形状改变,线性代数、数学计算Tensor是一个有值有属性…

C sort 排序函数用法

最近在刷ACM经常用到排序,以前老是写冒泡,可把冒泡带到OJ里后发现经常超时,所以本想用快排,可是很多学长推荐用sort函数,因为自己写的快排写不好真的没有sort快,所以毅然决然选择sort函数用法1、sort函数可…

python人脸_Python 使用 face_recognition 人脸识别

Python 使用 face_recognition 人脸识别 人脸识别 face_recognition 是世界上最简单的人脸识别库。 使用 dlib 最先进的人脸识别功能构建建立深度学习,该模型准确率在99.38%。 Python模块的使用 Python可以安装导入 face_recognition 模块轻松操作,对于简…

osgi 如何引入包_OSGi Testsuite:引入类名过滤器

osgi 如何引入包OSGi Testsuite是一个JUnit测试运行程序 ,它动态地收集要执行的测试类。 它已经由我的同伴Rdiger大约一年前出版,并且已经在某些项目中证明有用。 但是对于gonsole,我们必须使用一个难看的补丁,因为1.0版仅支持.*T…

C语言,一把菜刀。

C 与 C 的真正区别在哪里?C是中餐厨师的菜刀,做啥菜就那一把刀,切菜切肉切鱼,都是这一把刀,刀工好的师傅,豆腐都能切成一朵花。无论你提什么概念,都能用指针给你做出来,如果不行&…