IE浏览器中一个值得关注的JS问题
只是调试js,在mozilla一切正常,但是在ie中,有消息称找不到配置变量。代码如下:
以下是引号片段:
var environment = new(function environment $ ctor()
{
this . process command line = functionenv $ procmdline(q)
{
var cmd = configuration { };////其他代码省略
}
};
我连续将这一行更改为以下形式:
以下是引号片段:
var cmd = configuration = = null?{}:配置;
var cmd = " undefined " = = type of(配置)?{}:配置;
var cmd = { };if( "undefined" == typeof(配置))cmd =配置;
他们都报告了同样的错误。在尝试了各种方法都没有效果之后,我没有办法,只好把这行代码修改成下面的形式:
var cmd = window . configuration { };
居然通过了!!!
最后,原因是JScript和标准ECMAScript中的实现之间存在差距。如果configuration找不到,就应该上去扩大搜索范围,直到找到全局变量。显然,JScript没有这样做。
所以,以后如果你遇到Mozilla工作正常,但是IE莫名其妙的报告变量找不到了,那就试试加windows吧。前缀。
位律师回复
0条评论