IE9 错误 80020102,使用带有 doctype strict 的 vbscript Preserve 关键字

Posted

技术标签:

【中文标题】IE9 错误 80020102,使用带有 doctype strict 的 vbscript Preserve 关键字【英文标题】:IE9 Error 80020102, using vbscript Preserve keyword with doctype strict 【发布时间】:2011-02-10 17:24:36 【问题描述】:

我正在使用 IE9 beta 和下面的测试代码,当 vbscript 尝试附加到数组时遇到 80020102 错误。如果我以怪癖模式运行它,它似乎可以工作。

不知道这是 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]));
    


【问题讨论】:

阅读***.com/editing-help 的格式问题。 你为什么要混合 JS 和 VBScript 代码???坚持 JS 代码是恕我直言更好。在 JS 中,你可以调用 Array.push(val) 方法来代替这个丑陋的 VBScript appendArray(arr, val) 函数。 在严格模式下 IE8 没有错误,所以我确实同意 Cédric 的 IE9 问题,两种语言都有其优点,但在数组中 Javascript 肯定更好 【参考方案1】:

如果您使用 html 页面,请尝试在页面顶部添加此行。

<! DOCTYPE html >

【讨论】:

这个答案有点晚了——问题是关于 IE9 beta 的问题,这是过去的一段时间。从这个问题来看,他似乎也很清楚怪癖模式以及如何触发它。【参考方案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

我也同意 cmets 的观点,如果您可以摆脱 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]);
    

【讨论】:

以上是关于IE9 错误 80020102,使用带有 doctype strict 的 vbscript Preserve 关键字的主要内容,如果未能解决你的问题,请参考以下文章

带有自定义用户模型加载夹具错误的 Django 项目

从画布读取时出现 IE9 安全错误(非跨域)

带有 AngularJS CORS 的 IE9、IE8 返回“访问被拒绝” - ASP.NET WebApi

IE9:设置 document.domain 时访问被拒绝

带有 CORS 和 IE9 的 ASP Web API POST 请求(XDomainRequest 对象)

带有 v-for 的 Vue 内联模板 - 未定义