中国站长助手 - 源码狐 www.web162.com
站点首页
┋
站长教程
┋
站长下载
┋
域名空间
┋
视频教程
┋
稀饭论坛
┋
素材之家
┋
设为首页
收藏本站
网页模板
┆
源码下载
┆
工具软件
┆
Flash源码
┆
字体下载
┆
矢量图库
┆
服务器类
┆
WAP 下载
┆
安全相关
┆
编程开发
┆
图片素材
┆
网页动画素材
网页制作
┆
网络编程
┆
平面设计
┆
Flash教程
┆
操作系统
┆
服 务 器
┆
媒体动画
┆
新闻资讯
┆
站长教程
┆
网络安全
┆
网页特效
┆
计算机类考试
ASP 源码
┆
PHP 源码
┆
JSP 源码
┆
asp.net源码
┆
C源程序
┆
VC源代码
┆
VB源代码
┆
网页编辑
┆
编程工具
┆
商业模板
┆
Web服务器
┆
Ftp服务器
栏目导航
·
CSS-HTML
·
FrontPage|网页技巧
·
Dreamweaver
·
ASP|ASP.NET编程技术
·
PHP编程技术
·
XML技术应用
·
JAVA技术应用|jsp
·
数据库
热门教程
·
[图文]
百度photoshop贴吧P...
·
破解qq相册密码
·
[组图]
制作一个逼真的垃圾...
·
qq空间背景音乐代码...
·
如何组建局域网
·
[图文]
网页图片特效代码-飘...
·
网页背景特效代码-星...
·
[图文]
网站流量统计代码
·
qq空间背景代码
·
[组图]
跟我一起用Photosho...
相关教程
·
首个企业用户熊猫烧...
·
[图文]
最牛、最全面的“熊...
·
Oracle新手最常碰到...
·
思科无线移动办公室...
·
delphi7找不到TBDEC...
·
JSP由浅入深(5)——...
·
ASP系列讲座(十五)...
·
从ASP迁移至ASP+ --...
·
利用J2ME在移动设备...
·
如何获取本地HTML文...
站长教程
->
网页制作
->
CSS-HTML
-> 教程信息
html编辑器的回车换行问题解决方案 [
收藏本页
]
作者:无从考证 来源:不详 发布时间:2005-10-13 14:30:21
在html编辑器中,一般默认按回车总是出现<p> </p>,当然按shift+enter可以是直接加<br>,而很多人希望按回车就是<br>换行而不是分段。
一直有人问我这个问题,而我没有写代码测试就认为在onkeydown里面判断event.keyCode==13就可以判断并解决,而后来发现似乎并没有人能用这种方法解决成功。对此表示歉意!为此,仔细研究了一下,发现可以有两种解决方法,但是都不是很完美,不过已经基本可以满足需要了:
1.在初始化编辑器内容的时候,加上"<div></div>"
这样回车的时候编辑器会直接生成"<div></div>"而不会生成<p></p>,就可以只是换行而不换段了,如下所示:
<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"//编辑模式打开 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 onload="initeditor()"><iframe width="500" height="400" id="idEditbox"></iframe><BR><INPUT TYPE="button" value="查看源代码" onclick="readsource()"><BR><TEXTAREA NAME="source" ROWS="20" COLS="60"></TEXTAREA></BODY>
不足:
这种方法有个bug就是在编辑器中添加一些内容后,全选(ctr+A)然后删除所有内容(这样就把<div></div>也删除了),重新输入内容后回车就还是会产生<p></p>
2.直接在onkeypress里面处理
我们可以在onkeypress里面直接出来,但判断event.keyCode==13也就是是回车的时候我们直接插入<br>标签,这样无论怎么样都不会出现问题的了。以下是代码示例:
<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(){ //注意:如果焦点不在编辑器内该函数就不起作用了; var ev = idEditbox.event; if(ev.keyCode==13){ insertHTML("<br><!-- -->"); //不知道是我浏览器问题还是其他问题,只插入<br>标签光标不换行,必须附加点其他标签,可以最后一起删除之 return false;//这样回车就是等于失效了,不会加上讨厌的<p>标签 }}//在光标位置插入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 onload="initeditor()"><iframe width="500" height="400" id="idEditbox"></iframe><BR><INPUT TYPE="button" value="查看源代码" onclick="readsource()" onfocus="idEditbox.focus()"><BR><TEXTAREA NAME="source" ROWS="20" COLS="60"></TEXTAREA></BODY>
不足:
1).insertHTML("<br><!-- -->"); 会产生垃圾代码“<!-- -->”;
2).要保证焦点必须在编辑器中才能响应编辑器的onkeypress事件
因时间关系,本示例程序并未给出焦点不在编辑器中的处理方法
[] [
返回上一页
] [
打 印
] [
收 藏
]
上一篇教程:
网页中自动换行问题
下一篇教程:
网页设计中HTML常犯的五个错误
关于我们
┋
发展历程
┋
站点优势
┋
联系我们
┋
版本信息
┋
网页报错
┋
我有建议
┋
举报软件
Copyright © 2003-2008
站长
助手
www.web162.com
辽ICP备05001760号
网络实名:
站长
助手
转载本站原创教程请注名来源于本站
力倡站长资源文化,崇尚互联共享,做中国最好站长网站,为中国网站提供动力!
始建于2003-3-1 8:10 中国首都·北京 辽宁(分站)
主资源渠道辽宁电信分公司服务器组及带宽!