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 关键字的主要内容,如果未能解决你的问题,请参考以下文章
带有 AngularJS CORS 的 IE9、IE8 返回“访问被拒绝” - ASP.NET WebApi