所以在我的javascript中我有以下代码:
var wholeHash = window.location.hash.substring(1);
var data = new Object();
// Remove the bang or slash if one appears at the beginning
if (wholeHash[0] == '!') { wholeHash = wholeHash.substring(1); }
if (wholeHash[0] == '/') { wholeHash = wholeHash.substring(1); }
即将运行时,wholeHash
的值为"/search/&&stype=quick"
。但是,wholeHash[0]
不返回任何内容,导致wholeHash[0] == '!'
为false。这只是IE中的情况。
这是为什么?我知道我可以改为使用startswith
,但我一般都很有兴趣为什么IE不能获得字符串的单个字符而其他浏览器可以。
答案 0 :(得分:6)
因为索引到具有数组样式索引的字符串是新的,并且旧版本的IE缺少此功能。相反,如果您需要在8之前支持IE,则需要使用mystring.charAt(0)
。
答案 1 :(得分:2)
前一段时间我遇到过类似的问题。在我的情况下,它与在Intranet页面上自动打开的兼容性视图有关。检查this question。
答案 2 :(得分:1)
从字符串中获取字符的“正确”方法是使用mystring.charAt(x)
。
但是,您可以使用mystring.split("")
将字符串分解为数组。
由你喜欢的。