未捕获的类型错误:无法读取空值的属性'tagName'

6

在过去几个月中,我们在我们的Web应用程序中一直看到这个错误:

Uncaught TypeError: Cannot read property 'tagName' of null

首先我注意到这只发生在安卓手机4.0.X上,其它操作系统或版本没有此问题。

为了调试这个问题,我开始逐步删除代码和标记以找出罪魁祸首。
我一直这样做,直到文档完全被清空,但问题仍然存在。

唯一的线索是前面的控制台行:

Reader :: Recognize :: INFO - Script is evaluating. recognizeArticle Start

有人知道这为什么会发生吗?
问题在于我们会收到错误通知,但我们无法忽略它,因为每次都会在随机的行和页面上发生。
我可以补充说,这在我们所有的Web应用程序中都会发生。
澄清一下,这不是我们Web应用程序的问题,而是Android的问题。
我已经删除了我们所有的代码和标记,问题仍然存在,Android正在做某些导致此错误的事情。
我测试的手机是Galaxy S3。
由于人们似乎不相信我所说的源代码为空:
(develop✗) $ curl -v localhost:3000/us/app
* About to connect() to localhost port 3000 (#0)
*   Trying 127.0.0.1...
* connected
* Connected to localhost (127.0.0.1) port 3000 (#0)
> GET /us/app HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
> Host: localhost:3000
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< X-UA-Compatible: IE=Edge
< Cache-Control: no-cache
< X-Request-Id: c7d96d6898017b5efa7659028008a8b8
< X-Runtime: 0.011019
< Vary: Accept-Encoding
< Content-Length: 0
< Connection: keep-alive
< Server: thin 1.3.1 codename Triple Espresso
< 
* Connection #0 to host localhost left intact
* Closing connection #0

1
你的代码中在哪里尝试访问某些对象的属性'tagName'?在此尝试时,该对象本身为null - 即先前获取对象的尝试实际上失败了,但未经检查就被留下了。你应该寻找像... someObj.tagName ...... someObj["tagName"] ...这样的代码。 - Germann Arlington
我知道这些错误的含义......就像我说的那样,即使我已经清空了DOM中的所有内容(我的意思是所有内容),错误仍然会发生。 - Nicklas A.
1
除非您展示有问题的代码,否则没有人能真正帮助您调试代码。 - rsp
1
你有没有看到问题,根本就没有代码,我都删光了。问题不在于我们的代码。 - Nicklas A.
1
我在一个ASP.Net页面(三星Galaxy S3)上遇到了同样的错误,但是有一行号码(总是相同的数字!):“Uncaught TypeError: Cannot read property 'tagName' of null in line 279”。这个错误发生在我所有自己的脚本之后。 - Hugo
不好意思,我认为这只是我们必须接受的事情。 - Nicklas A.
3个回答

1
我发现在Android 4.0.X上,没有包含至少10个字符的
标签的页面会抛出JavaScript错误。显然RSS阅读器假设该页面中会有一些内容在
标签中。

0

我在Linux上的Chrome浏览器中遇到了这个错误,它是由ImageBlocker扩展程序引起的。既然当您启动空白页面时出现此“错误”,那么您无需修复它。这是浏览器或扩展程序的一个漏洞。


-2

你的问题和评论结合起来没有意义:
听起来像是你打开了一个空白页面,其中没有HTML或JavaScript,然后它给你生成了一个错误???

在你的页面中一些JavaScript函数
1)试图从DOM中获取某个对象
2)尝试执行1),但未能成功,却没有处理错误,导致对象引用变量设置为NULL
3)尝试使用上述对象变量来获取其tagName属性。

如果以上不是真实情况,那么你就不会有错误需要询问。


你为什么觉得我在问这个问题?我的意思是,我没有发送任何代码,但是Android中的某些东西正在向浏览器注入损坏的代码。 - Nicklas A.
你尝试访问的每个页面/站点都会发生这种情况吗?如果不是,那么很可能不是设备/操作系统的问题。你知道可能会有额外的部分,比如页眉和页脚,可以添加到你的网站的每个页面中,而你实际上并没有添加它吗? 你能获取页面源代码并确认那里没有任何东西吗? - Germann Arlington
请查看问题中的 curl 输出。 - Nicklas A.
我理解您只有在从“Galaxy S3”访问网站时才会收到错误(因此需要额外的脚本/代码),您是否尝试在cURL中模拟其浏览器? - Germann Arlington
所以我们从零开始编写了这个应用程序,我们在渲染中没有针对不同设备的条件语句。 - Nicklas A.
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接