IE8问题
2017-12-20
ie8 下遍历字符串出现的 bug
在主流浏览器及 ie9+下,我们在遍历字符串时,浏览器会强制把该对象的类型转换为数组,但是在 ie8 下则不会,所以我们还是老老实实先转换为数组吧。
大家在不同浏览器下试试吧,解决方法就是加一句 str.split(“”),ie8 下才会生效
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>demo</title> </head> <script src="js/jquery-1.11.3.min.js"></script> <style> * { padding: 0; margin: 0; } </style> <body> <input id="q1" type="text" value="一段测试文字" />
<script> var str = "测试文字"; var str1 = "原文字"; for (var i in str) { str1 += str[i]; } $("#q1").val(str1); </script> </body> </html>
|
字符串截取用 substr 在 ie8 下遇到的坑
1 2
| var str = "hello world 6666"; str.substr(-4, 4);
|
正确返回应该是:6666
但是 ie8 下 substr 参数不支持负数,返回的是:hell,可以手动试下。
解决的办法就是改用 substring 方法:
1
| str.substring(str.length - 4);
|
这样 ie8 下就会正常返回:6666