包含连续多个空格的字符串赋值给innerHTML的问题
March 30th, 2009
现在回想起来,这种连续多个空格最后只剩下一个空格的问题,很可能的原因就是html把多个连续空格变成一个显示,是因为不是显式的声明为 的原因导致。
最初这个defect是报给另外一个Widget的,但显示是这个Widget的问题。所以确定问题的原因不一定要从根源查起,有时凭经验也是可以从中途甚至是结果查到蛛丝马迹。
当一个包含连续多个空格的字符串被赋值给div的innerHTML时,浏览器会直接把多个空格缩减为1个,因为在html中空格使用 来表示的。所以这里需要做字符串的转义,我查了一下,用正则表达式查找替换最为简单:
var newStr = strContainingMultipleWhiteSpace.replace(/s/g,” ”);
这里有个很好的参考链接:http://www.busfly.cn/post/160.html
我曾经一路怀疑这是innerHTML搞的鬼,换成innerText或者适用于FF的textContent皆不可用,走了弯路。
最新评论