Open
Description
脚本 A 上线后,脚本 B 中出现了大量的 JavaScript 异常:『错误的参数个数或无效的参数属性值』
主要在 IE 系列浏览器中,尤其以 IE8 等为主。
分析发现:
- 脚本 A 在页面加载时创建了 DOM 表单元素,并进行了
form.submit()
操作。 - 脚本 B 在页面加载到底部时,进行了修改 DOM 元素的属性操作。
但是本地自己的浏览器没有能够重现异常。
后来脚本 A 修改了执行时机,在 DOM Ready 之后操作 DOM,异常消失。
『错误的参数个数或无效的参数属性值』这个异常在网络上以 ASP, VBScript,ActionScript,PHP 等类型的语言中反馈较多。
JavaScript 语言对函数参数没有约束,无论是参数个数,或者参数值,都不会有异常抛出。
但是内置的 DOM 操作函数除外,他们一般有参数类型检查,传入非预期的参数或抛出异常。
另外,由于本地未能重现,说明有异常概率。有相关文章提供了因为系统动态链接库(DLL)问题导致这个异常发生,甚至影响到 Windows 系统控制面板的显示,可以通过运行重现注册动态链接库解决问题。