韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

文本編輯器代碼如何寫

文本編輯器代碼如何寫

更新時間:2023-06-21 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

編程(Programming)是編定程序的中文簡稱,就是讓計算機(jī)代碼解決某個問題,對某個計算體系規(guī)定一定的運(yùn)算方式,使計算體系按照該計算方式運(yùn)行,并最終得到相應(yīng)結(jié)果的過程。為了使計算機(jī)能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機(jī)能夠理解的形式告訴計算機(jī),使得計算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計算體系之間交流的過程就是編程。

【實例名稱】

文本編輯器

【實例描述】

 在網(wǎng)站提供的郵箱中,經(jīng)常會使用文本編輯器,以實現(xiàn)文本內(nèi)容的層次感和美觀性。本例將制作一個簡單的文本編輯器,主要學(xué)習(xí)實現(xiàn)文本編輯器的原理。

【實例代碼】

    <script language="javascript"> var edit;       //當(dāng)前選擇的文本編輯區(qū)域?qū)ο? var RangeType;  //對象類別 function start() //開始初始化編輯器-編輯區(qū)域是Iframe {  Editor.document.designMode="ON";  Editor.document.open();  Editor.document.write(myTextArea.value);  Editor.document.close();     fnInit() } function setFocus() {    Editor.focus();  //編輯器或去焦點 } function selectRange(){  edit = Editor.document.selection.createRange();  //編輯器的文本選擇區(qū)域  RangeType = Editor.document.selection.type; } //包裝文本選定區(qū)域的執(zhí)行命令 function execCommand(command,para) {    setFocus();         selectRange();      if (para=="")   //沒有參數(shù)的情況         edit.execCommand(command)     else     edit.execCommand(command, false, arguments[1]);   Editor.focus();   if (RangeType != "Control") edit.select(); } //獲取或設(shè)置文本的格式-字體、字號 function doSelectC(str,el) {

   var Index = el.selectedIndex;   if (Index != 0)   { el.selectedIndex = 0;   execCommand(str,el.options[Index].text);     } } //獲取或設(shè)置當(dāng)前選定塊的格式化標(biāo)簽 function doSelectCl(str,el) {    var Index = el.selectedIndex;   if (Index != 0)   { el.selectedIndex = 0;   execCommand(str,"<"+el.options[Index].value+">");   } } //初始化 function fnInit(){       for (i=0; i<document.all.length; i++)             document.all(i).unselectable = "off";  //指定不選中任何元素       getSystemFonts(); } //獲取系統(tǒng)字體的方法 function getSystemFonts() {  var a=dlgHelper.fonts.count; var fArray = new Array(); var oOption = document.createElement("OPTION"); oOption.text = "字體"; oOption.value = "0"; selectFontName.add(oOption); //使用DOM方法createElement將字體依次添加到復(fù)選列表中 for (i = 1;i < dlgHelper.fonts.count;i++)  {   fArray[i] = dlgHelper.fonts(i);   var oOption = document.createElement("OPTION");   oOption.text = fArray[i];   oOption.Value = i;   selectFontName.add(oOption);   } } //格式化,保全script、textarea、xmp、pre和style內(nèi)容 function formatfor(va) {   var t=va.replace(/\r/g,'');   t = t.replace(/(<(script|textarea|xmp|pre|style).*?>)([^\r]*?)(<\/\2>)/img, function (){return arguments[1]+arguments[3].replace(/\n/g, "\r")+arguments[4]})   t = t.replace(/\n/g, "");   return t } function fontsize(el) //改變字體的方法 {var Index=el.selectedIndex var addpre="<font size="+el.options[Index].value+">" if(Index>7)addpre="<font style='font-size:"+el.options[Index].value+"pt'>" var oSel = Editor.document.selection.createRange() var sBookmark = oSel.getBookmark() var oSelhtml=oSel.htmlText if(oSelhtml!="") { //定位選中內(nèi)容 var conts=oSelhtml var textLength = Editor.document.body.innerText.length oSel.moveStart("character", -1*textLength) var contp=formatfor(oSel.htmlText) var conta=formatfor(Editor.document.body.innerHTML) var contpa='' var partC="" var partB="" var partA="" var m=0 m=conta.indexOf(contp.substr(0,3)) var f=contp.length for(;f>0;f--) {if(conta.substr(m,f)==contp.substr(0, f)){contpa=contp.substr(0,f);partC=conta.substr(m+f);break}} var ko=contp.substr(f) var kol=ko.length var ty=conta.substr(m+f,kol) var hu="" for(var b=1;b<kol;b++)if(ko.substr(b)==ty.substr(0,kol-b)){hu=ko.substr(b);contpa+=hu;partC=partC.substr(kol-b);break} var k=contpa.length cont=conts.replace(/\n/g, "") var u=cont.length if(cont==contpa.substr(k-u)){partB=cont;partA=contpa.substr(0,k-u)}else{ for(u=cont.length;u>0;u--) {if(cont.lastIndexOf(contpa.substr(k-u))!=-1){partB0=contpa.substr(k-u);partA0=contpa.substr(0,k-u);break}} contt=formatfor(conts) if(hu!="")if(contt.substr(contt.length-kol)==ko)contt=contt.substr(0,contt.length-kol)+hu u=contt.length var youm=contpa.lastIndexOf(contt) if(youm!=-1){partB=contt;partA=contpa.substr(0,youm);partC=contpa.substr(youm+u)+partC}else{ for(;u>0;u--){if(contt.lastIndexOf(contpa.substr(k-u))!=-1){partB1=contpa.substr(k-u);partA1=contpa.substr(0,k-u);break}} if(partB1.length>partB0.length){partB=partB1;partA=partA1}else{partB=partB0;partA=partA0}  } } if(partB.substr(partB.length-1)=="<"){partB=partB.substr(0,partB.length-1);partC="<"+partC} if(partB.substr(partB.length-2)=="</"){partB=partB.substr(0,partB.length-2);partC="</"+partC} //保護(hù)textarea、xmp、script和style的內(nèi)容不被改變 var cook=[] partA=partA.replace(/(<(script|textarea|xmp|style).*?>)[\s\S]*?<\/\2>/ig, function (){co=cook.length cook[co]=arguments[0];return "<cook"+co+">"}) var ook="" partA=partA.replace(/(<(script|textarea|xmp|style).*?>)[\s\S]*?$/i, function (){co=cook.length ook=arguments[2] cook[co]=arguments[0];return "<cook"+co+">"}) if(ook!=""){fd="(^[\\s\\S]*?<\/"+ook+">)" jk=new RegExp(fd,["i"]) if(jk.test(partB)){jk.exec(partB) co=cook.length cook[co]=RegExp.$1 partB=partB.replace(jk,"<cook"+co+">")}} partB=partB.replace(/(<(script|textarea|xmp|style).*?>)[\s\S]*?<\/\2>/ig, function (){co=cook.length cook[co]=arguments[0];return "<cook"+co+">"}) ook="" partB=partB.replace(/(<(script|textarea|xmp|style).*?>)[\s\S]*?$/i, function (){co=cook.length ook=arguments[2] cook[co]=arguments[0];return "<cook"+co+">"}) if(ook!=""){fd="(^[\\s\\S]*?<\/"+ook+">)" jk=new RegExp(fd,["i"]) if(jk.test(partC)){jk.exec(partC) co=cook.length cook[co]=RegExp.$1 partC=partC.replace(jk,"<cook"+co+">")}} partC=partC.replace(/(<(script|textarea|xmp|style).*?>)[\s\S]*?<\/\2>/ig, function (){co=cook.length cook[co]=arguments[0];return "<cook"+co+">"})

//處理字體 var dol=[] var dos=[] var lon=[] fd="<FONT([^>]*?)>" jk=new RegExp(fd,["im"]) while(jk.test(partB)){ce=dol.length jk.exec(partB) dol[ce]=RegExp.$1 partB=partB.replace(jk,"<site"+ce+">") } ce=dol.length-1 for(;ce>-1;ce--) {kjc="<site"+ce+">" fd=kjc+'(.*?)<\/font>' jk=new RegExp(fd,["im"]) if(jk.test(partB)){dos[dos.length]=ce jk.exec(partB) ko3=kjc+RegExp.$1+"</site"+ce+">" partB=partB.replace(jk,ko3) }else{lon[lon.length]=ce} } partB=partB.replace(/<\/font>/img,"<lonf>") for(var c=dos.length-1;c>-1;c--) { uts=dol[dos[c]] if(""==(uts.replace(/size=[0-7+]+/i,"").replace(/style=("|')FONT-SIZE: [0-9.]+.*;*("|')/im,"").replace(/[\s\n\r]+/mg,""))){partB=partB.replace("<site"+dos[c]+">","") partB=partB.replace("</site"+dos[c]+">","")}else{partB=partB.replace("<site"+dos[c]+">","<font"+uts.replace(/ size=[0-7+]+/im,"").replace(/FONT-SIZE: [0-9.]+pt/im,"").replace(/ style=("|');*("|')/im,"")+">") partB=partB.replace("</site"+dos[c]+">","</font>")} } //處理其他標(biāo)簽 var addend="" var mio=[] partB=partB.replace(/<([^<> ]*?) [^<>]*?style=[^<>]*?FONT-SIZE: [0-9.]+[^<>]*?>/img, function (){notv="|select|input|option|object|" if(notv.indexOf("|"+arguments[1].toLowerCase()+"|")==-1){ op=mio.length mio[op]=arguments[0] return "<opis"+op+">"}else{return arguments[0]}}) kba=["h1","h2","h3","h4","h5","h6","pre","button","listing","big","small","tt","code","kbd","samp","td","\/td","caption","\/caption","th","\/th","tr","\/tr","table","\/table","thead","\/thead","tbody","\/tbody","tfoot","\/tfoot"] for(b in kba){ fd="<("+kba[b]+")[^<>]*?>" jk=new RegExp(fd,["img"]) partB=partB.replace(jk, function (){op=mio.length mio[op]=arguments[0] return "<opis"+op+">"}) } //收尾工作 liming=[] partB=partB.replace(/<(opis|site|lonf)([0-9]*)>/g, function(){var op=liming.length if(arguments[1]=="opis"){liming[op]=mio[parseInt(arguments[2])]} if(arguments[1]=="site"){liming[op]="<font"+dol[parseInt(arguments[2])]+">"} if(arguments[1]=="lonf"){liming[op]="</font>"} return "<duan"+op+">" }) if(liming.length>0){ partB=partB.replace(/^(.+?)(<duan0>)/m,function(){if(""!=arguments[1]){return addpre+arguments[1]+"</font>"+arguments[2]} else{return arguments[0]}}) var op=liming.length-1 for(var kc=0;kc<op;kc++){ fd="(<duan"+kc+">)(.+?)(<duan"+(kc+1)+">)" jk=new RegExp(fd,["m"]) partB=partB.replace(jk, function(){if(""!=arguments[2]){return arguments[1]+addpre+arguments[2]+"</font>"+arguments[3]} else{return arguments[0]}})} fd="(<duan"+op+">)(.+?)$" jk=new RegExp(fd,["m"]) partB=partB.replace(jk,function(){if(""!=arguments[2]){return arguments[1]+addpre+arguments[2]+"</font>"} else{return arguments[0]}}) } else{partB=addpre+partB+"</font>" } partB=partB.replace(/<duan([0-9]+)>/g,function(){return liming[parseInt(arguments[1])]}) var endtemp=partA+partB+partC for(vof in cook)endtemp=endtemp.replace("<cook"+vof+">",cook[vof]) Editor.document.body.innerHTML=endtemp var vrvd=Editor.document.selection.createRange() vrvd.moveToBookmark(sBookmark) vrvd.select() } else{ Editor.document.selection.createRange().pasteHTML(addpre+"</font>") }Editor.focus() el.blur() el.selectedIndex=0} </script>

 

【運(yùn)行效果】

運(yùn)行效果

【難點剖析】

本例的重點是字體的獲取,以及執(zhí)行命令“execCommand”。字體獲取使用的是方法getSystemFonts”,方法中的“dlgHelpel"”對象必須在頁面中注冊,本例中注冊的代碼是“OBJECT id=dlgHelper CLASSID=“clsid:3050P819-98b5-11cf-bb82—00aa00bdceob”width=“Opx”height=“0px”></OBJECT>”。ExecCommand是文本編輯器中的一個重要方法,主要用于樣式的變更。

【源碼下載】

本實例JS代碼下載

 


使用編程語言寫的程序,由于每條指令都對應(yīng)計算機(jī)一個特定的基本動作,所以程序占用內(nèi)存少、執(zhí)行效率高。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
欧美一区亚洲二区| 99久久99久久免费精品蜜臀| 九一在线视频| 韩国av永久免费| 欧美一级精品大片| 黄网站色视频免费观看| 91高清国产| 一区二区日韩av| 亚洲免费精彩视频| a视频免费在线观看| 免费看日本黄色| 中文字幕在线资源| 免费wwwxxx| 在线激情av| 免费在线视频欧美| 亚洲精品三区| 亚洲国产成人高清精品| 亚洲欧美强伦一区二区| blacked蜜桃精品一区| 看黄的a网站| 国产高清一区二区三区四区| 91系列在线观看| 日本熟妇一区二区三区| 激情综合自拍| 在线观看成年人视频| 伊人久久婷婷| av在线你懂的| 国产日韩在线免费观看| 成人精品一区二区三区校园激情| 亚洲一区二区三区四区中文字幕| 美女免费视频一区| 欧美日韩国产观看视频| 精品久久久99| 国产亚洲综合在线| 色噜噜狠狠色综合欧洲selulu| 成人免费在线观看视频| 国产精品福利一区二区三区| 亚洲第一页av| 国产精品对白刺激久久久| 久久精品日产第一区二区三区高清版| 视频污在线观看| 精品视频久久久久久久| 欧美狂欢多p性派对| 久久久久久久久久网| 在线中文字幕视频观看| 美丽的姑娘在线观看免费动漫| 亚洲国产精品成人无久久精品| 亚洲中文一区二区三区| 亚洲国产日韩a在线播放性色| 国产av无码专区亚洲av| 欧美自拍偷拍第一页| 日本电影在线观看网站| 91福利精品在线观看| 日韩精品另类天天更新| 在线观看av免费观看| 成人黄色国产精品网站大全在线免费观看| 日本黄色中文字幕| 精品伦精品一区二区三区视频密桃| eeuss影院www在线| 欧美在线中文字幕| 婷婷丁香久久五月婷婷| 狠狠做深爱婷婷综合一区| 情趣视频在线观看| 亚洲第九十九页| 日本三级午夜理伦三级三| 欧美日韩一区久久| 欧美主播一区二区三区| 在线观看视频色| 色妞www精品视频| 国产精品自偷自拍| 又色又爽的视频| 亚洲婷婷在线观看| 色一情一交一乱一区二区三区| 日韩成人在线播放| 91蜜桃在线视频| 精品国产不卡一区二区| 欧美18 19xxx| 欧美亚洲爱爱另类综合| 伊人成人在线| 午夜日韩视频| 欧美行性性性o00x| 中文字幕在线视频精品| 日韩在线成人| 亚洲综合第一区| a级精品国产片在线观看| 国产精品美女久久| 久久99精品久久久久久琪琪| 99re6热在线精品视频| 国产一区二区黑人欧美xxxx| 可以看的av网址| 欧美成人另类视频| 一区二区影视| 黄色av一区| 欧美成人四级hd版| 国产精品色婷婷在线观看| 久久丫精品国产亚洲av不卡| 成人福利视频| 一区二区三区电影网| 国产精品**亚洲精品| 国产电影一区二区三区爱妃记| 亚洲三级久久久| 国产精品网站免费| 久久久亚洲精品无码| 欧美精品v日韩精品v国产精品| 日本一区二区精品| 亚洲香肠在线观看| 国产成人禁片在线观看| 亚洲在线视频一区| 国产一区二区三区免费在线观看| 欧美午夜电影在线播放| 精品中文字幕一区二区小辣椒| 麻豆久久一区二区| 欧美高清69hd| 成人在线精品| 久久99久国产精品黄毛片入口| 久久爱91午夜羞羞| 日本h视频在线观看| 一本色道久久88综合亚洲精品ⅰ| 国产99在线播放| 激情久久一区| 亚洲无码精品在线播放| 欧美与欧洲交xxxx免费观看| 国产浪潮av性色av小说| 久久夜色精品国产噜噜av| 国产精品成人观看视频免费| 黄页网站大全在线免费观看| 蜜芽一区二区三区| 国产美女视频一区二区二三区| 久久一区二区三区视频| 黄色视屏免费在线观看| 日韩欧美一区二区三区在线| 五月婷婷综合在线| 欧美精品入口蜜桃| 香蕉视频在线观看免费| 在线天堂www在线国语对白| 在线免费观看黄色小视频| 国产一区二区三区在线观看免费视频| 国产精品丝袜白浆摸在线| 日本激情小视频| 国产专区视频| 久久久国产精品无码| 精精国产xxxx视频在线动漫| 日韩精品成人一区二区三区| www.噜噜色.com| 欧美成人免费大片| 国内久久久精品| 成人国产精品免费观看视频| 91精品国产自产在线观看永久| 精品freesex老太交| 亚洲综合色av| 欧美一级黄色带| 成**人特级毛片www免费| 国产精品久久久久野外| 91高清视频在线观看| 国产女人18毛片18精品| 18禁裸乳无遮挡啪啪无码免费| 亚洲欧美日韩色| 91久久偷偷做嫩草影院电| 狠狠一区二区三区| av网站大全在线| 青青草激情视频| 国内成人精品2018免费看| 春意影院普通入口| 国产欧美一区二区精品性色超碰| 99九九99九九九99九他书对| av在线导航| 亚洲精品98久久久久久中文字幕| 97成人在线观看视频| 中文字幕亚洲欧美日韩2019| 国内成人精品2018免费看| 在线精品日韩| 在线观看视频色潮| 国产精品一区专区| 国产美女精品一区二区三区| 香蕉视频黄在线观看| 涩涩视频在线观看免费| 国产视频一视频二| 国模一区二区三区白浆| 五月天激情小说| 国产欧美一区二区三区在线观看视频| 欧美精品黑人猛交高潮| 国产精华一区二区三区| 亚洲av无码专区在线播放中文| 欧洲视频在线免费观看| 国产卡一卡2卡三卡免费视频| 嗯啊主人调教在线播放视频| 日韩免费在线免费观看| 992kp免费看片| av片在线观看| 成人情趣片在线观看免费| 热这里只有精品| 亚洲天堂网站| 美日韩精品免费视频| 亚洲国产另类 国产精品国产免费| 成人午夜电影在线播放| 激情欧美一区二区| 国产精品自拍第一页| aaa毛片在线观看| 精品久久国产一区| 久久精品国产亚洲精品| 五月天综合激情| 2欧美一区二区三区在线观看视频| 国产69精品久久| 欧美国产日本高清在线| 性刺激综合网| 欧美三级成人观看| 青青青免费视频观看在线| 91在线精品| 成人性生交免费看| 欧美1区2区3| 国产激情美女久久久久久吹潮| 亚洲国产成人精品无码区99| 99精品国产九九国产精品| 性色av一区二区三区免费| 国产精品白嫩美女在线观看| 欧美变态挠脚心| 国产精品大片免费观看| 国产精品入口尤物| 天天干天天干天天干天天干天天干| 成人四虎影院| 亚洲第一在线综合网站| 精品日本美女福利在线观看| 在线毛片网站| 欧美人与禽性xxxxx杂性| 国产一区二区三区站长工具| 国产精品进线69影院| 欧美成人另类视频| ww久久中文字幕| 天堂精品中文字幕在线| 99精品99久久久久久宅男| 亚洲福利免费| 国产成人精品一区二区三区| 天码人妻一区二区三区在线看| 国产精品久久久久久久龚玥菲| 免费在线一区二区| 成人一区二区不卡免费| 97在线看免费观看视频在线观看| 91精品综合久久久久久| 日韩精品极品在线观看播放免费视频| 松下纱荣子在线观看| 国产精品久久久久久亚洲色| 欧美精品激情视频| 性欧美xxxx免费岛国不卡电影| 国产成人久久精品77777| 国产精品视频大全| 国产精品一二三区在线观看| 无码视频一区二区三区| 成人精品久久一区二区三区| 特大黑人娇小亚洲女mp4| 中文字幕免费一区二区三区| 国产精品欧美久久久| 日韩欧美激情电影| 亚洲在线电影| 老色鬼久久亚洲一区二区| 国产淫片免费看| 全球中文成人在线| 久久精品久久精品久久| 国产精品第5页| 亚洲久久久久久久久久久| 神马午夜电影一区二区三区在线观看| 国产精品国产三级国产专播品爱网| 制服丝袜日韩| 日韩欧美在线一区二区| 一级片在线免费观看视频| 午夜不卡av免费| 欧美日韩精品在线观看视频| 国产丝袜美腿一区二区三区| 国产精品久久97| 91精品福利观看| 在线观看亚洲黄色| 91在线视频精品| 日产日韩在线亚洲欧美| 国产精品综合av一区二区国产馆| 爱情岛论坛亚洲首页入口章节| 巨胸喷奶水www久久久免费动漫| 高清一区二区三区视频| 亚洲国产精品ⅴa在线观看| 日韩精品一区二区三区外面| 日本a级片在线观看| 两个人的视频www国产精品| 国产精品无码专区av在线播放| 欧美日韩在线视频播放| 性色av一区二区三区红粉影视| 蜜桃视频在线观看一区二区| 免费看黄色aaaaaa 片| 青青在线免费视频| avtt天堂资源网| 波多野结衣av在线| 小视频福利在线| 欧美性猛交p30| 91破解版在线观看| 中文字幕高清不卡| 亚洲精品影院在线| 欧美做受高潮6| 成人免费毛片app| 受虐m奴xxx在线观看| 国产一区二区黄色| 精品美女久久久| 欧美激情精品久久久久| 欧美另类z0zx974| 久久国产免费看| 欧美日一区二区三区在线观看国产免| www日本高清| 国产黄色美女视频| 国产在线精品观看| 91成人短视频在线观看| 午夜国产精品影院在线观看| 91麻豆视频网站| 激情网站在线观看| 91九色在线免费视频| 国产精品一香蕉国产线看观看| 国产夫妻性生活视频| 李宗瑞系列合集久久| 久久免费黄色| 欧美日韩不卡在线视频| 日韩成人av免费| 欧美在线影院在线视频| 夜先锋av资源| 亚洲精品久久久久久久久久久久久| 国产女同无遮挡互慰高潮91| 国产一级特黄aaa大片| 欧美高清视频一区二区| 国产黄色小视频网站| 一区2区3区在线看| 黑人巨大狂躁日本妞在线观看| 日韩一区二区三区资源| 国产黄色一区| 色婷婷久久av|