java返回字符串浏览器换行_解决浏览器显示页面长字符串换行问题总结

问题产生 在web页面HTML中,容器(div,table等)中如果放入过长的字符串(英文、数字和部分标点符号组成,无空格),将会撑大容器,破坏页面外观。

出现这种情况基本有两个可能:

1. 人为的恶意破坏

2. 长URL

问题分析

1.为了避免容器被撑大,破坏页面,必须固定外部容器的大小。一般而言,在外面的table的css属性中,加入"table-layout:fixed;"就可以解决。

2. 当做以上处理时,尽管容器不会被撑大,页面也不会走形,但是其中的字符串会自动得溢出容器。为了处理这种溢出,有两个解决方案:

1)CSS中填入属性:"word-wrap:break-word;",这样长字符串会自动换行;但是这个属性属于CSS3.0标准,IE6.0以上支持,Firefox暂时不支持

2)CSS中填入属性:"over-flow:hidden;",这样溢出的字符串会自动被隐藏,但是对要解决显示整个字符串的情况不适用。

3.我们选择强制字符串换行的方式,具体为在html中插入一些控制符。我们选择,其所代表的意义为:当浏览器判断此处不断行会导致溢出则使其断行,否则不做处理。其适合于IE,Firefox和Safari3.0以上版本。(其他控制符课参考链接)

问题解决方案

1. javascript: function wordwrap(id) 缺陷:传入id必须唯一,否则在IE中只能取得第一个相同id的Element,(Firefox可行)。许多动态生成的页面(比如包含for循环的),可能无法满足此要求。

2. javascript: function wordwrap(classname) 缺陷:classname可以重名,解决了id的问题。但是classname的方式,容器必须用style sheet,且处理工作一次性完成(在页面生成后),这位页面动态交互带来了困难。

3. javascript: function wordwrap(string) 缺陷:输入输出范围的都是string,此函数定义最为简洁,使用最为方便,也易于理解。但是唯一的问题也是致命的:传入的参数可能由服务器端自动生成,如果出现了引号(”)或者回车符,则在javascript中会产生string lietral error的问题。这个问题在javascript层面是无法解决的。

4. 服务器端函数 String wordwrap(String input) 缺陷:在页面的动态交互上,虽然具备功能性,但是影响效率;计算集中在服务器端,可能带来performance瓶颈;在大型项目中,此解决方案的共享性不高。 实现建议 字符串(无论是否过长)包含了空格(使浏览器可以自动换行的符号)和特殊符号两类(例如在html中的tag<...>和转义符#amp;等),这都是插入时需要考虑的因素。 建议可以使用正则表达式进行计算,高效也简单。 总结 方法的实现并不困难,主要是接口的定义上。因为各个浏览器的支持度的关系,前后端的实现都有其缺陷,要找到一个完全全局性通用的解决方案,几乎不太可能。可以根据项目大小以及其他具体情况,选择解决方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值