Sep 13

FireFox文本不自动换行解决办法 不指定

felix021 @ 2008-9-13 21:54 [IT » 网络] 评论(0) , 引用(0) , 阅读(5929) | Via 本站原创 | |
之前发现Firefox和IE都无法令WOJ上的题目描述自动还行,找了很多办法,都不行,后来发现是以前的遗留代码把所有的空格转换成了 ,使得所有的字符都连接成了一个超长的无空格连续字符串(被当成了一个单词),而默认情况下IE和FF都不对单词自动断字,所以会出现无法自动换行的情况。重写了一下那些代码,把每两个连续的空格替换成一个空格加一个 ,就解决了这个问题。下面的东西作为处理单词自动断字的方式,可以参考下。

zz from http://www.bc8.com.cn/html/42/t-1642.html

    关于FireFox网上找了很多资料一直没有合适的解决办法,今天特地找了一个程序高手研究了这个问题,终于有个比较理想的解决办法了,在这里与大家分亨一下,主要是DIV + CSS文本自动换行在FireFox里面的解决办法,具体如下:

文本自动换行IE中解决方法:
word-wrap:break-word;
word-break:break-all;
注:以上两个属性仅IE支持。
注:在要换行的内容相应的单元格或者DIV里加入,如:
<div style="word-wrap:break-word;"></div>或<td style="word-wrap:break-word;"></td>

文本自动换行FireFox中解决方法
(脚本,Felix觉得效果其实不够好,会出现把&nbsp断开的情况,以及断字后没有加上一个 - 表示断字):

<script type="text/javascript">
function toBreakWord(intLen, id){
  var obj=document.getElementById(id);
  var strContent=obj.innerHTML;
  var strTemp="";
  while(strContent.length>intLen){
    strTemp+=strContent.substr(0,intLen)+"<br>";
    strContent=strContent.substr(intLen,strContent.length);
  }
  strTemp+= strContent;
  obj.innerHTML=strTemp;
}
</script>

注:以上脚本放在</head>前面.

调用时如下写法:

同个页面单处调用:
<div id="content">这里是要应用换行的内容</div><script language="javascript">toBreakWord(60, "content");</script>

同个页面多处调用:
<div id="content">这里是要应用换行的内容</div><script language="javascript">toBreakWord(60, "content");</script>
<div id="content2">这里是要应用换行的内容</div><script language="javascript">toBreakWord(60, "content2");</script>

注:把应用的JS写在</div>后面,其中60表示一行要显示多少字字符,注意多个调用时ID的相应变化,不能同一个ID名称,应用上面
的方法后IE也会是按设定的字符数换行,但是IE里面支持自动换行,所以只要判断一下是否为IE,如果不是IE就不要输出上面的
<script language="javascript">toBreakWord(60, "content");</script>
这段JS,如果不是就要输出。

请大家帮忙转发该解决办法,并且注明出处,谢谢!



欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]