未捕获的TypeError:无法读取null的属性'getElementsByTagName'

5er*_*ant 15 javascript function typeerror

我正在尝试这个解决方案,但是.getElementsByTagName()使用了它,产生了一个错误:

var tags = document.body.getElementsByTagName("*");
Uncaught TypeError: Cannot read property 'getElementsByTagName' of null
Run Code Online (Sandbox Code Playgroud)

为什么会产生此错误,我该如何解决?

Rav*_*Rav 64

请注意,如果您使用LastPass,也会出现此错误,至少与2016年11月7日一样.我认为这是我的代码问题,但显然不是.

  • 已确认的LastPass for Chrome正在创建此错误.禁用扩展并修复它. (7认同)
  • 奇怪的是,在我的情况下,它只发生在我单页应用程序中的特定路线的背景上(不是身份验证的一部分,顺便说一句).3个路由中的2个没有此问题,但错误特别来自最后一次传递扩展:chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/onloadwff.js:1573:17 (2认同)

Que*_*tin 12

document.body 在创建body元素之前,不会为其分配值.

将元素<script><head>元素移动到<body>元素(因为您试图获取其中的所有元素,您希望位于body元素的末尾)或将其放在函数中并从之后触发的事件中调用它身体已经创建(例如window load事件).