IE8 Javascript null != undefined
IE8 Javascript null != undefined
我已经确定了问题,但不确定是什么导致了问题。我的生产环境正在平等地处理未定义和null(undefined == null
),这是所需的行为。这个问题发生在IE8中,因为我的开发环境对null和undefined的处理方式不同(undefined != null
)。
我在下面提供了一段代码,这段代码在两种环境中都是相同的。调用render函数时,不会为两个环境传递任何参数。我添加了控制台语句,以显示每个环境如何处理传递到呈现函数中的args
。
var PortalView = (function() {
return new function() {
$.extend(true, this, SystemController);
var self = this;
//Render: 'args' is not defined in this case causing the issue
self.render = function(args){
if (args == null){ console.dir('null!!');}
if (args == undefined){ console.dir('undefined!!');}
if (args != undefined && args != null){console.dir('NEITHER');}
if (args == null && args == undefined){console.dir('BOTH!!');}
console.dir('args:'+args);
var args = (args != undefined) ? args : {};
args.el = (args.el != undefined) ? args.el : '#content'; //ERROR OCCURS HERE (line 21)
args.template = "PortalTemplate"; //HTML template
self.renderTemplate(args); //inherited from 'SystemController'
};
}
})();
以下是控制台结果:
Production Environment (desired results):
LOG: "null!!"
LOG: "undefined!!"
LOG: "BOTH!!"
LOG: "args:undefined"
Development Environment (undesired results)
LOG: "null!!"
LOG: "args:undefined"
SCRIPT5007: Unable to get value of the property 'el': object is null or undefined
vwaPortalView.js, line 21 character 4
我正在寻找会导致这种错误发生的场景。如有任何提示,我们将不胜感激。
编辑我已查明问题的真正根源。它是由对跨站点(提供身份验证服务的内部intranet站点)的JQUERY Ajax请求引起的。jsonpCallback
参数破坏了一切。如果有人知道什么可以省去我的麻烦。。。太好了,否则我想从现在开始我应该能够处理它!我提供了ajax调用作为问题来源的参考(在IE8中)
$.ajax({
url: 'http://xyz.aspx', //changed for obvious reasons
dataType: 'jsonp',
jsonp: 'callback',
error: function (request, status, error) {console.dir(error);}, //Parse error
jsonpCallback: function(data, status){
console.dir(data);
console.dir(status);
}
});
使用类型
var args = (typeof args === "undefined") ? {} : args;
所有浏览器都支持typeof
,它将返回元素的文本类型或"未定义"。
相关文章:
- getElementById 在 Safari 中返回 null 或 undefined
- 为什么是 isFinite(undefined) != isFinite(null)
- 为什么"undefined为null或不是对象”;
- results[0].formatted_address return undefined or null
- javascript中undefined和null的区别是什么,它们的用例是什么
- Angularjs变量undefined、null和empty同时出现
- Undefined vs null in javascript
- 为什么javascript ' var undefined '是OK的,但' var null '抛出错误
- JavaScript Regex匹配返回null或undefined
- Are [object Null] &[object Undefined]有待实现
- 反应.createElement: type不应该是null、undefined、boolean或number.它应该是
- 迭代react元素中的undefined/null对象
- 警告:反应.createElement: type不应该是null、undefined、boolean或number
- 解释如果Type(x)是Undefined,返回true.如果Type(x)为Null,则返回true
- 为什么 null==undefined 在 JavaScript 中是正确的
- ES6 ReactJS: React.createElement: type不应该是null、undefined、boo
- 是否可以使用变量!= null而不是变量!== undefined &&== null
- 如何从"null"筛选嵌套数组和“;undefined"值
- Javascript不能访问document: null或undefined
- 可以在检查undefined/null时使用类型强制转换