3

所以在我的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] == '!'错误。这只是在 IE 中的情况。

为什么是这样?我知道我可以改用startswith,但我通常很感兴趣,为什么 IE 不能获取字符串的单个字符,而其他浏览器可以。

4

3 回答 3

6

因为使用数组样式索引对字符串进行索引是新的,而旧版本的 IE 缺少这一点。相反,mystring.charAt(0)如果您需要在 8 之前支持 IE,则需要使用。

于 2012-04-19T19:48:55.913 回答
2

不久前我遇到了类似的问题。在我的情况下,它与在 Intranet 页面上自动打开的兼容性视图有关。检查这个问题

于 2012-04-19T19:50:42.520 回答
1

从字符串中获取字符的“正确”方法是使用mystring.charAt(x).

但是,您可以使用 将字符串分解为数组mystring.split("")

看你喜欢哪个。

于 2012-04-19T19:50:38.523 回答