html編輯器的回車換行問題解決方案
2007/1/17 9:12:30

在html編輯器中,一般默認按回車總是出現<p></p>,當然按shift+enter可以是直接加<br>,而很多人希望按回車就是<br>換行而不是分段。 
一直有人問我這個問題,而我沒有寫代碼測試就認為在onkeydown里面判斷event.keyCode==13就可以判斷并解決,而后來發現似乎并沒有人能用這種方法解決成功。對此表示歉意!為此,仔細研究了一下,發現可以有兩種解決方法,但是都不是很完美,不過已經基本可以滿足需要了: 
1.在初始化編輯器內容的時候,加上"<div></div>" 
這樣回車的時候編輯器會直接生成"<div></div>"而不會生成<p></p>,就可以只是換行而不換段了,如下所示: 
<SCRIPTLANGUAGE="javascript"><!--functioniniteditor(){varL_DEFAULTHTML_TEXT="<DIV></DIV>";varsz=""sz+="<BODYONCONTEXTMENU=\"returnfalse\">"+L_DEFAULTHTML_TEXT+"</BODY>"idEditbox.document.designMode="on"http://編輯模式打開idEditbox.document.write(sz)//以下代碼只是輔助方便看編輯器源代碼的idEditbox.document.attachEvent("onkeyup",readsource);idEditbox.document.attachEvent("onkeydown",readsource);}//看源代碼functionreadsource(){document.all.source.value=idEditbox.document.body.innerHTML;}//--></SCRIPT><BODYonload="initeditor()"><iframewidth="500"height="400"id="idEditbox"></iframe><BR><INPUTTYPE="button"value="查看源代碼"onclick="readsource()"><BR><TEXTAREANAME="source"ROWS="20"COLS="60"></TEXTAREA></BODY> 
不足: 
這種方法有個bug就是在編輯器中添加一些內容后,全選(ctr+A)然后刪除所有內容(這樣就把<div></div>也刪除了),重新輸入內容后回車就還是會產生<p></p> 
2.直接在onkeypress里面處理 
我們可以在onkeypress里面直接出來,但判斷event.keyCode==13也就是是回車的時候我們直接插入<br>標簽,這樣無論怎么樣都不會出現問題的了。以下是代碼示例: 
<SCRIPTLANGUAGE="javascript"><!--functioniniteditor(){varsz=""sz+="<BODYONCONTEXTMENU=\"returnfalse\"></BODY>"idEditbox.document.designMode="on"idEditbox.document.write(sz)idEditbox.document.onkeypress=fnKeypress}functionfnKeypress(){//注意:如果焦點不在編輯器內該函數就不起作用了;varev=idEditbox.event;if(ev.keyCode==13){insertHTML("<br><!---->");//不知道是我瀏覽器問題還是其他問題,只插入<br>標簽光標不換行,必須附加點其他標簽,可以最后一起刪除之returnfalse;//這樣回車就是等于失效了,不會加上討厭的<p>標簽}}//在光標位置插入htmlfunctioninsertHTML(html){varsel=idEditbox.document.selection;if(sel!=null){varrng=sel.createRange();if(rng!=null)rng.pasteHTML(html);}}//查看代碼functionreadsource(){document.all.source.value=idEditbox.document.body.innerHTML;}//--></SCRIPT><BODYonload="initeditor()"><iframewidth="500"height="400"id="idEditbox"></iframe><BR><INPUTTYPE="button"value="查看源代碼"onclick="readsource()"onfocus="idEditbox.focus()"><BR><TEXTAREANAME="source"ROWS="20"COLS="60"></TEXTAREA></BODY> 
不足: 
1).insertHTML("<br><!---->");會產生垃圾代碼“<!---->”; 
2).要保證焦點必須在編輯器中才能響應編輯

下一頁
返回列表
返回首頁 主站蜘蛛池模板: 天堂√最新版中文在线| 公车上玩两个处全文阅读| 国产午夜精品一区二区| 四虎永久网址在线观看| 亚洲精品成人网久久久久久| 国产极品美女高潮无套| 国产精品视频一区二区三区无码 | 一级特黄录像在线观看| 97久人人做人人妻人人玩精品| 国产挤奶水主播在线播放| 第一福利官方航导航| 美女被免费网在线观看网站| 激情网站在线观看| 男人j桶进女人j的视频| 日韩精品一区二区三区色欲av| 欧美日韩亚洲国产| 尤物精品视频一区二区三区| 国产特黄1级毛片| 伊人久久大香网| 亚洲精品自在线拍| 久久成人午夜电影mp4| 久久综合色婷婷| 一二三四在线视频社区8| www.五月婷| 天天碰免费视频| 皇夫被迫含玉势女尊高h | 色噜噜狠狠狠综合曰曰曰| 欧美日韩亚洲成色二本道三区| 把女人弄爽大黄a大片片| 成人午夜精品无码区久久| 天海翼大乱欲在线观看| 国产精品麻豆免费版| 国产精品久久久久影院| 国产在线麻豆精品观看| 亚洲国产第一页| 中文字幕在线视频网站| 91普通话国产对白在线| 狠狠做深爱婷婷久久综合一区| 无码国产精品一区二区免费式芒果 | 内射中出无码护士在线| 中文字幕影片免费在线观看 |