注册 登录
编程论坛 ASP技术论坛

用demo.document.designMode="no"的一些问题,请教请教

sdgjsddd 发布于 2007-10-10 12:19, 1135 次点击
我用
<iframe id=demo width=680 height=220>
<script language=javascript>
demo.document.designMode="no";
</script>
实现在iframe框架中能手工输入内容


问题:
一、在iframe框架输入中,希望输入的内容超出iframe范围后,自动换到下一行(而不是直接在本行出现横项滚动条继续显示),怎么也弄不了(可能太笨)
二、在iframe框架输入中,按下回车自动换行后,下一行与上一行之间的距离相差比较大,能不能按回车换行后,让两行之间的距离小点,就像在textarea中的换行效果那样

请高手一定帮帮忙,超急。。。。。。谢谢
8 回复
#2
yms1232007-10-10 12:43
<iframe id=demo style="overflow-x:hidden;" width=680 height=220>
试试看呢?
#3
sdgjsddd2007-10-10 12:50
不行。。。。
关于CSS中的overflow下的4个参数的资料我有查过,也全试过。。。。。。

包括scrolling我也用了
<iframe scrolling="no" id=demo>

。。。。。
用designMode来写在线编辑器,好不容易找了些感觉,却又碰到这样的问题
#4
sdgjsddd2007-10-10 13:17
在这个方面就没能有其它的解决方法了吗???
#5
yms1232007-10-10 13:22
目前我也没找到很好地解决办法呢
#6
sdgjsddd2007-10-10 13:25
本站的“在线编辑器”在这块是怎样实现的??
您清楚吗?
#7
yms1232007-10-10 15:05

搜索了一下楼主的问题找到了解决方法
利用重写keypress事件来解决
代码如下
<ifream id="demo">
<script language=javascript>
function document.onreadystatechange()
{
demo.document.designMode="On";
}
function window.onload()
{
demo.document.onkeypress=fnkps;//这里的用途是将函数fnkps与编辑器iframe的onkeypress(键盘按下事件)进行绑定
}
function fnkps()
{
if(demo.event.keyCode==13)//判断是否输入了回车
{
//以下代码用来将<p>替换为<br>
var txtobj=demo.document.selection.createRange();
txtobj.text==""?txtobj.text="\n":(demo.document.selection.clear())&(txtobj.text="\n"); //三目复合表达式,解决有被选文字时回车的光标定位问题
demo.document.selection.createRange().select();
return false;
}
}
</script>

[此贴子已经被作者于2007-10-10 15:09:06编辑过]

#8
sdgjsddd2007-10-10 17:41
收藏
谢谢yms123版主(高手)

另一个,让输入的内容超出iframe范围后自动换行这块.....能不能给个思路

在这块,我想到个思路,请指教一下
同样的加个onkeypress事件,当每输入一个字符时,取该字符在iframe中的X坐标值,当X坐标到达指定的位置数值时,则加<br>
不知道这种想法.....行得通吗???
#9
yms1232007-10-10 18:24

可以用判断字数的方法,确定一行有多少字,然后以多少字为单位加br

1