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
總結
以上是生活随笔為你收集整理的html代码编辑器sp,在线HTML编译,文本关键字高亮显示,富文本编辑实现大概思路...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 京东那家店的电脑版下载安装(京东电脑版怎
- 下一篇: html打开显示脚本错误,IE浏览器显示