IE中不支持charCode?

时间:2010-11-19 04:55:40

标签: javascript internet-explorer

我正在使用以下函数将字符串编码为base64:

encode: function(input) {
    var output = "";
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;

    do {
        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);

        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;

        if (isNaN(chr2)) {
            enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
            enc4 = 64;
        }

        output = output + this.keyStr.charAt(enc1) + this.keyStr.charAt(enc2) + this.keyStr.charAt(enc3) + this.keyStr.charAt(enc4);
    } while (i < input.length);

    return output;
}

然而在IE中,我收到以下错误:

 chr1 = input.charCodeAt(i++);
 "Object doesn't supported by this property or method".
你能帮我解决一下吗?似乎charCodeAt函数无效。

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

确定看起来就像IE支持String#charCodeAt()w3schoolsMSDN

什么是typeof input

答案 1 :(得分:0)

如果你真的必须在&lt; IE 5.5,然后:

input.charAt(i++).escape()

会做你想做的事。

然而,这在unicode角色上失败,但在IE 5.4及以下的黑暗时期,unicode几乎不存在。

如果您使用的是&gt; = IE 5.5,那么问题不在于charCodeAt(),而在于您的代码的另一部分。什么是input