Ошибка IE9 80020102, использование ключевого слова vbscript Preserve со строгим типом документа - PullRequest
11 голосов
/ 10 февраля 2011

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

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

Я бы выложил полный 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]));
    }

}

Ответы [ 3 ]

1 голос
/ 16 апреля 2012

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

<! DOCTYPE html >
0 голосов
/ 14 марта 2012

Вот ваш код, очищенный от 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]);
    }
}
0 голосов
/ 13 января 2012

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

<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вам будет лучше.

...