3

私のキャプチャコードはすべてのブラウザで正常に機能していますが、IE7ではエラーが表示されています。

これがフィドルです:http://jsfiddle.net/KMupW/4/

これが私のコードです:

function randomString(length, chars) {
    var result = '';
    for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
    return result;
}
 var code= randomString(5,'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');

 document.getElementById("txtCaptcha").value = code;
 document.getElementById("txtCaptchaDiv").innerHTML = code;  
4

1 に答える 1

2
result += chars[index];

問題はここにあります。InternetExplorerは配列のような文字列操作をサポートしていません。代わりに次のように記述してください。

result += chars.charAt(index);

したがって、行は最終的に次のようになります。

result += chars.charAt(Math.round(Math.random() * (chars.length - 1)));

例: http: //jsfiddle.net/XDxR7/2/

于 2013-03-19T13:10:34.930 に答える