【问题标题】:IE9 Error 80020102, using vbscript Preserve keyword with doctype strictIE9 错误 80020102,使用带有 doctype strict 的 vbscript Preserve 关键字
【发布时间】: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]));
    }

}

【问题讨论】:

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

标签: javascript arrays vbscript internet-explorer-9


【解决方案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]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-04
      • 2011-12-03
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      相关资源
      最近更新 更多