问题: 我在生产网页上收到以下错误报告:
TypeErrores6-shim/es6-shim in process
null is not an object (evaluating 'n.parentNode.removeChild')
问题
在最低级别,最可能出现的情况是什么?
n
是null
(无论n
是什么)n.parentNode
是null
arg
在null
n.parentNode.removeChild(arg)
醇>
更多详细信息(如果相关):
我们正在使用Sentry错误报告系统报告错误。
此错误发生在Mobile Safari和Chrome Mobile下。
源地图似乎已被破坏,因此我不知道错误所指的es6-shim脚本的哪一行(并且很可能是它的es6-shim问题,因为没有出现es6-shim代码中的removeChild)。
答案 0 :(得分:2)
您可以轻松设置所有三种情况,以确定它是哪种情况(also on jsFiddle):
FILE_UPLOAD_HANDLERS=[
'django.contrib.staticfiles.finders.MemoryFileUploadHandler',
'django.contrib.staticfiles.finders.TemporaryFileUploadHandler',
]
var n, p;
console.log("If n were null:")
try {
n = null;
n.parentNode.removeChild(null);
} catch (e1) {
console.log(e1.message);
}
console.log("If parentNode were null:")
try {
n = document.createElement("div");
n.parentNode.removeChild(null);
} catch (e2) {
console.log(e2.message);
}
console.log("If arg were null:")
try {
p = document.createElement("div");
n = document.createElement("div");
p.appendChild(n);
n.parentNode.removeChild(null);
} catch (e3) {
console.log(e3.message);
}
当我在移动Chrome上运行时,我看到:
If n were null: null is not an object (evaluating 'n.parentNode') If parentNode were null: null is not an object (evaluating 'n.parentNode.removeChild') If arg were null: Argument 1 ('child') to Node.removeChild must be an instance of Node
因此.as-console-wrapper {
max-height: 100% !important;
}
n.parentNode.removeChild(...)
n
所引用的parentNode
引用的对象似乎正在调用null
。
尽管在es6-shim中报告了错误,但es6-shim本身不太可能出错(正如你所说,es6-shim中没有removeNode
);它更可能是从提供给其中一个es6-shim函数的回调中抛出的。