Skip to content

JavaScript 异常:错误的参数个数或无效的参数属性值 #23

Open
@hotoo

Description

@hotoo

脚本 A 上线后,脚本 B 中出现了大量的 JavaScript 异常:『错误的参数个数或无效的参数属性值』
主要在 IE 系列浏览器中,尤其以 IE8 等为主。

分析发现:

  • 脚本 A 在页面加载时创建了 DOM 表单元素,并进行了 form.submit() 操作。
  • 脚本 B 在页面加载到底部时,进行了修改 DOM 元素的属性操作。

但是本地自己的浏览器没有能够重现异常。

后来脚本 A 修改了执行时机,在 DOM Ready 之后操作 DOM,异常消失。


『错误的参数个数或无效的参数属性值』这个异常在网络上以 ASP, VBScript,ActionScript,PHP 等类型的语言中反馈较多。

JavaScript 语言对函数参数没有约束,无论是参数个数,或者参数值,都不会有异常抛出。
但是内置的 DOM 操作函数除外,他们一般有参数类型检查,传入非预期的参数或抛出异常。

另外,由于本地未能重现,说明有异常概率。有相关文章提供了因为系统动态链接库(DLL)问题导致这个异常发生,甚至影响到 Windows 系统控制面板的显示,可以通过运行重现注册动态链接库解决问题。

参考

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions