什么是Chrome中的“未捕获的类型错误:非法调用”
What is "Uncaught TypeError: Illegal invocation” in Chrome?
我有一个问题。想象一下,我们有这样的 html 文档:
<html>
<head>
</head>
<body>
<p id="1">Hi</p>
</body>
</html>
当我写document.getElementById("1").__proto__;
时 - 我得到了HTMLParagraphElement对象。它是 p 对象原型链(HTMLParagraphElement--> HTMLElement --> Element--> Node-->...(中的第一个原型对象。由于 Node 对象位于此链中,因此其所有属性和方法都可用于 HTMLParagraphElement 对象。当我在写document.getElementById("1").__proto__.parentNode;
浏览器给我
未捕获的类型错误:非法调用。什么意思?我怎样才能知道这个 HTMLParagraphElement 对象到底在哪里连接到 BOM?例如,如果我正在编写变量 x=10;- 它是一个对象,它连接到窗口对象的根目录 (window.x;(。我想清楚地了解物料清单的结构。
如果需要访问元素的 parentNode,则应直接执行以下操作:
document.getElementById("1").parentNode
上面的行将返回对<body>
节点的引用,并且适用于向上遍历 DOM。
否则
document.getElementById("1").__proto__.parentNode
这意味着您正在尝试获取类/类型HTMLParagraphElement
的 parentNode,它不是一个元素,而是一种元素类型:元素类型没有父节点。
更合适的__proto__
是:
document.getElementById("1").__proto__.__proto__
上面的行将为您提供HtmlElement
类,尽管这不是很有用。
关于var x
,应该注意的是,javascript中定义的变量不会附加到DOM上,全局变量会添加到window
。 window
通过 window.document
连接到 DOM ,简而言之,只需键入document....
命令即可访问。
- 是否排除节点中错误堆栈的第一行?/节点中的自定义错误类型
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- 我们可以得到jQueryValidate错误类型吗
- 错误“类型错误: $(..).孩子不是一种功能”
- 谷歌图表绘制()方法错误类型时给定数据表
- 错误:类型错误: $(..).选择选择器不是使用 requireJS 加载的函数库
- 我收到一个错误:类型错误:在使用解析 API 更新用户对象时未定义 e.changes.如何解决这个问题
- 随机子字符串错误?“类型错误:在对象中找不到函数子字符串.".
- 无法理解为什么代码给出错误:类型错误:0 是只读的
- 为什么我收到jQuery错误“类型错误:$(..).在以下场景中,Live 不是一个函数
- 角度类型提前异步结果 - 收到错误“类型错误:无法使用'in'运算符搜索 ..在..".
- 在 Node.js 服务器内发出异步请求错误:“类型错误:对象 #<对象> 没有方法'_implicitHeader'”
- JQuery 错误: 类型错误: 'undefined' 不是一个函数
- 在 Angular 应用程序上收到错误:类型错误:无法读取未定义的属性“then”
- 获取错误类型错误:onOk 不是一个函数
- 如何检测带有源的音频标记的错误类型
- Javascript-错误:inQuery Parse.com的102错误类型
- Javascript变量作用域问题-错误:类型错误:this.graphics未定义
- 捕获脚本错误 - 类型,行和文件
- jquery错误类型错误:值不是对象..split(& # 39; & # 39;)