Ошибка IE9 80020102, используя ключевое слово vbscript Preserve с doctype strict

Я использую IE9 beta с тестовым кодом ниже, и я сталкиваюсь с ошибкой 80020102, когда vbscript пытается добавить в массив. Если я запустил это в режиме quirks, это сработает.

Не зная, является ли это проблемой MS или что-то неправильное, что я делаю, я отправил ее в хранилище ошибок IE9. Есть ли у кого-нибудь предложение по работе?

Я бы опубликовал полный html, но он всегда выглядит искаженным в предварительном просмотре.

-- VBscript part ---    
Function getBlankArray() 
   getBlankArray = Array() 
End Function

Function appendArray(arr, val) 
   redim preserve arr(ubound(arr) + 1) 
   arr(ubound(arr)) = val 
   appendArray = arr 
End Function

-- javascript part --- 
function test()
{
    var contextKeysArray = getBlankArray();
        var jscontextKeysArray = new Array();
    for(var x=0; x < 10; x++)
    {

        jscontextKeysArray[x] = x;

    }

    for(i = 0; i < jscontextKeysArray.length; i++)
    {
            contextKeysArray = (appendArray(contextKeysArray, jscontextKeysArray[i]));
    }

}

Ответ 1

просто попробуйте добавить эту строку вверху страницы, если вы используете html-страницу.

<! DOCTYPE html >

Ответ 2

Вы пытались использовать режим совместимости?

<meta http-equiv="X-UA-Compatible" content="IE=8; IE=7; IE=5" >

http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx

Я также согласен с комментариями, что если вы можете уйти от vbscript и использовать только javascript-решение, вам будет лучше.

Ответ 3

Вот ваш код, очищенный от VBScript:

function test() {
    var contextKeysArray = [], jscontextKeysArray = [];
    for (var x = 0; x < 10; x++) {
        jscontextKeysArray[x] = x;
    }

    for (var i = 0; i < jscontextKeysArray.length; i++) {
        contextKeysArray.push(jscontextKeysArray[i]);
    }
}