- TEL:131 7970 3111
-
慧網(wǎng)微信
- 掃描二維碼
- 關(guān)注邳州在線
-
手機(jī)網(wǎng)站
- 手機(jī)掃描二維碼
- 進(jìn)入手機(jī)站
網(wǎng)站地圖
付款方式
html編輯器的回車換行問題解決方案
在html編輯器中,一般默認(rèn)按回車總是出現(xiàn)<p> </p>,當(dāng)然按shift+enter可以是直接加<br>,而很多人希望按回車是<br>換行而不是分段。
一直有人問我這個(gè)問題,而我沒有寫代碼測(cè)試認(rèn)為在onkeydown里面判斷event.keyCode==13可以判斷并解決,而后來發(fā)現(xiàn)似乎并沒有人能用這種方法解決成功。對(duì)此表示歉意!為此,仔細(xì)研究了一下,發(fā)現(xiàn)可以有兩種解決方法,但是都不是很完美,不過已經(jīng)基本可以滿足需要了:
1.在初始化編輯器內(nèi)容的時(shí)候,加上"<div></div>"
這樣回車的時(shí)候編輯器會(huì)直接生成"<div></div>"而不會(huì)生成<p></p>,可以只是換行而不換段了,如下所示:
以下為引用的內(nèi)容: <SCRIPT LANGUAGE="javascript"><!--function initeditor(){ var L_DEFAULTHTML_TEXT="<DIV></DIV>"; var sz="" sz+="<BODY ONCONTEXTMENU=\"return false\">"+L_DEFAULTHTML_TEXT+"</BODY>" idEditbox.document.designMode="on"http://編輯模式打開 idEditbox.document.write(sz) //以下代碼只是輔助方便看編輯器源代碼的 idEditbox.document.attachEvent( "onkeyup" , readsource ); idEditbox.document.attachEvent( "onkeydown" , readsource );}//看源代碼function readsource(){ document.all.source.value=idEditbox.document.body.innerHTML;}//--></SCRIPT><BODY ><iframe width="500" height="400" id="idEditbox"></iframe><BR><INPUT TYPE="button" value="查看源代碼" ><BR><TEXTAREA NAME="source" ROWS="" COLS="60"></TEXTAREA></BODY> |
不足:
這種方法有個(gè)bug是在編輯器中添加一些內(nèi)容后,全選(ctr+A)然后刪除所有內(nèi)容(這樣把<div></div>也刪除了),重新輸入內(nèi)容后回車還是會(huì)產(chǎn)生<p></p>
2.直接在onkeypress里面處理
我們可以在onkeypress里面直接出來,但判斷event.keyCode==13也是是回車的時(shí)候我們直接插入<br>標(biāo)簽,這樣無論怎么樣都不會(huì)出現(xiàn)問題的了。以下是代碼示例:
以下為引用的內(nèi)容: <SCRIPT LANGUAGE="javascript"><!--function initeditor(){ var sz="" sz+="<BODY ONCONTEXTMENU=\"return false\"></BODY>" idEditbox.document.designMode="on" idEditbox.document.write(sz) idEditbox.document.onkeypress=fnKeypress}function fnKeypress(){ //注意:如果焦點(diǎn)不在編輯器內(nèi)該函數(shù)不起作用了; var ev = idEditbox.event; if(ev.keyCode==13){ insertHTML("<br><!-- -->"); //不知道是我瀏覽器問題還是其他問題,只插入<br>標(biāo)簽光標(biāo)不換行,必須附加點(diǎn)其他標(biāo)簽,可以一起刪除之 return false;//這樣回車是等于失效了,不會(huì)加上討厭的<p>標(biāo)簽 }}//在光標(biāo)位置插入htmlfunction insertHTML(html){var sel = idEditbox.document.selection;if (sel!=null) { var rng = sel.createRange(); if (rng!=null) rng.pasteHTML(html);}}//查看代碼function readsource(){ document.all.source.value=idEditbox.document.body.innerHTML;}//--></SCRIPT><BODY ><iframe width="500" height="400" id="idEditbox"></iframe><BR><INPUT TYPE="button" value="查看源代碼" ><BR><TEXTAREA NAME="source" ROWS="" COLS="60"></TEXTAREA></BODY> |
不足:
1).insertHTML("<br><!-- -->"); 會(huì)產(chǎn)生垃圾代碼“<!-- -->”;
2).要保證焦點(diǎn)必須在編輯器中才能響應(yīng)編輯器的onkeypress事件