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

时间:2021-05-26

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

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

functionfnAddBr(id,iPerLineLen){.....}
id为要修改的文本块的id,iPerLineLen为每行的长度
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<title>UntitledDocument</title>
</head>
<body>
<scripttype="text/javascript">
//函数功能:在指定长度处自动添加换行符,以英文长度为准,及8代表8个英文或4个汉字
functionfnAddBr(id,iPerLineLen){
varsStr=document.getElementById(id).innerHTML;
if(sStr.replace(/[^\x00-\xff]/g,"xx").length<=iPerLineLen){
return-1;
}

varstr="";
varl=0;
varschar;
for(vari=0;schar=sStr.charAt(i);i++){
str+=schar;
l+=(schar.match(/[^\x00-\xff]/)!=null?2:1);
if(l>=iPerLineLen){
str+="<br/>\n";
l=0;
}
}
document.getElementById(id).innerHTML=str;
}
</script>
<divid="content"style="border:1pxsolid#ccc">
我在做网页的时候添加的内容在生成网页后总是横向把表格撑的很宽,很难看;
我在加了
style="table-layout:fixed;word-wrap:break-word;word-break:break-all"

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

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

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

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

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

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

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

<scripttype="text/javascript">
fnAddBr("content",25);
fnAddBr("content1",50);
</script>
</body>
</html>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章