`
喜马拉雅上的小草
  • 浏览: 48280 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript实现的一个自定义长度的文本自动换行的函数。

阅读更多
很多朋友在制作网页过程中总是发现某些时候一些英文会把原来好好的表格撑开而导致变形,虽然可以使用style="table-layout:fixed;word-wrap:break-word;word-break:break-all" 来解决这个问题,但有些时候会导致内容显示不完整而被隐藏了起来,并没有做到自动换行的效果。

于是偶就想写一个这样的函数来修补这个缺陷,这个函数很简单,但这里只是提供一种思路来解决这个问题。

function fnAddBr(id, iPerLineLen){.....}
id为要修改的文本块的id,iPerLineLen为每行的长度

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>Untitled Document</title> 
</head> 
<body> 
<script type="text/javascript">     
//函数功能:在指定长度处自动添加换行符,以英文长度为准,及8代表8个英文或4个汉字 
     function fnAddBr(id, iPerLineLen){ 
        var sStr=document.getElementById(id).innerHTML; 
        if(sStr.replace(/[^\x00-\xff]/g,"xx").length <= iPerLineLen){ 
            return -1; 
        } 
     
        var str=""; 
        var l=0; 
        var schar; 
        for(var i=0;schar=sStr.charAt(i);i++){ 
            str+=schar; 
            l+=(schar.match(/[^\x00-\xff]/)!=null?2:1); 
            if(l>= iPerLineLen){ 
                str+="
\n"; 
                l=0; 
            } 
        } 
        document.getElementById(id).innerHTML=str; 
    } 
    </script> 
<div id="content" style="border:1px solid #ccc"> 
我在做网页的时候添加的内容在生成网页后总是横向把表格撑的很宽,很难看;  
我在加了  
style="table-layout:fixed;word-wrap:break-word;word-break:break-all"  

这个代码后,表格倒是不会撑宽了,可是内容又显示不完全了,只是显示表格一样的宽度的内容,其他的被遮挡或是过滤掉了。  
我的是汉字,这个有关系吗?  

请问有什么方法可以让在表格中的文字到多少字的时候就自动换一行?或是能换行又不撑大表格,而且不略去内容!  

我的内容是在动易中调用的这个标签! 
</div> 

<div id="content1" style="border:1px solid #ccc"> 
我在做网页的时候添加的内容在生成网页后总是横向把表格撑的很宽,很难看;  
我在加了  
style="table-layout:fixed;word-wrap:break-word;word-break:break-all"  

这个代码后,表格倒是不会撑宽了,可是内容又显示不完全了,只是显示表格一样的宽度的内容,其他的被遮挡或是过滤掉了。  
我的是汉字,这个有关系吗?  

请问有什么方法可以让在表格中的文字到多少字的时候就自动换一行?或是能换行又不撑大表格,而且不略去内容!  

我的内容是在动易中调用的这个标签! 
</div> 

<script type="text/javascript"> 
    fnAddBr("content",25); 
    fnAddBr("content1",50); 
</script> 
</body> 
</html>
分享到:
评论

相关推荐

    javascript 一个自定义长度的文本自动换行的函数

    javascript 一个自定义长度的文本自动换行的函数

    程序天下:JavaScript实例自学手册

    6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE下拉框 6.10 下拉框式邮件发送 6.11 获取多选框的选择项 6.12 手动调整的列表框 6.13 ...

    《程序天下:JavaScript实例自学手册》光盘源码

    6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE下拉框 6.10 下拉框式邮件发送 6.11 获取多选框的选择项 6.12 手动调整的列表框 6.13 ...

    107个常用javascript语句

    49.引用一个文件式的JS:&lt;script type="text/javascript" src="aaa.js"&gt; 50.指定在不支持脚本的浏览器显示的HTML:&lt;noscript&gt;&lt;/noscript&gt; 51.当超链和onCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例...

    ExtAspNet_v2.3.2_dll

    -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正...

    正则表达式

    也可以用JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号内的字符一样, 正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符.所以,JavaScript可能会包含如下的...

    freemarker总结

    上面的语法格式中,sequence就是一个集合对象,也可以是一个表达式,但该表达式将返回一个集合对象,而item是一个任意的名字,就是被迭代输出的集合元素.此外,迭代集合对象时,还包含两个特殊的循环变量: item_index:...

Global site tag (gtag.js) - Google Analytics