【问题标题】:Uncaught TypeError: Cannot read property 'tagName' of null未捕获的类型错误:无法读取 null 的属性“tagName”
【发布时间】:2014-03-17 01:54:03
【问题描述】:

在过去的几个月里,我们的网络应用中出现了这个错误:

Uncaught TypeError: Cannot read property 'tagName' of null

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

为了调试这个问题,我首先删除了代码和标记,试图找出罪魁祸首。
我这样做了,直到我完全清空了所有文件并且问题仍然存在。

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

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

有人知道为什么会这样吗?
问题是我们会收到有关错误的通知,我们不能忽略这一点,因为它每次都发生在随机的行和页面上。


我可以补充一点,这发生在我们所有的网络应用程序上。


澄清一下,这不是我们的网络应用程序的问题,问题在于 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

【问题讨论】:

  • 您在(您的?)代码中的什么位置尝试访问某些对象的属性“tagName”?在此尝试时,对象本身为空 - 即之前获取对象的尝试实际上失败了,但未选中。您应该寻找像 ... someObj.tagName ...... someObj["tagName"] ... 之类的代码
  • 我知道错误是什么意思...正如我所说,当我清空 DOM 的所有内容(我的意思是所有内容)时,错误仍然会发生。
  • 除非您显示有问题的代码,否则没有人能真正帮助您调试代码。
  • 你有没有读过这个问题,没有代码,我已经把它全部删除了。问题不在于我们的代码。
  • 我在 ASP.Net 页面(Samsung Galaxy S3)上遇到同样的错误,但行号(总是相同的数字!):“未捕获的 TypeError:无法读取属性 'tagName' of null在第 279 行"。该错误发生在我自己的所有脚本之后。

标签: javascript android


【解决方案1】:

我发现在 Android 4.0.X 上,任何没有包含至少 10 个字符的 div 的页面都会引发 JavaScript 错误。 RSS 阅读器显然假定页面将在 div 中包含一些内容。

【讨论】:

    【解决方案2】:

    我在 Chrome for Linux 上遇到此错误,它是由 ImageBlocker 扩展程序引起的。由于您在启动空白页面时会发生此“错误”,因此您不需要修复它。这是浏览器或扩展程序的错误。

    【讨论】:

      【解决方案3】:

      您的问题与您的 cmets 相结合确实有意义:
      听起来您正在打开包含 no HTML 或 JavaScriptempty 页面,它会生成错误???

      一些 JavaScript 函数在您的页面某处运行并且
      1) 尝试从你的 DOM 中获取一些对象
      2) 未能执行 1) 但 NOT 处理将对象引用变量设置为 NULL 的错误
      3) 尝试使用上述对象变量来获取它的tagName 属性。

      如果上述情况不属实,那么您将不会有错误要询问。

      【讨论】:

      • 你认为我为什么要问这个问题?...我的意思是我没有发送任何代码,但 android 中的某些东西正在将损坏的代码注入浏览器。
      • 您尝试访问的每个页面/站点是否会发生这种情况?如果不是,那么它不太可能是设备/操作系统。您确实知道可能有额外的部分(例如页眉和页脚)可以添加到您网站的每个页面,而无需您实际添加?你能找到页面源代码并确认那里没有NOTHING吗?
      • 查看问题中的curl 输出。
      • 我了解到您在从“galaxy S3”访问该站点时收到错误(以及因此附加的脚本/代码),您是否尝试“冒充”它是 cURL 中的浏览器?
      • 所以我们从头开始编写这个应用程序,我们在渲染中没有针对不同设备的条件。
      猜你喜欢
      • 2021-11-18
      • 1970-01-01
      • 2022-01-19
      • 2021-12-01
      • 2022-07-02
      • 2022-06-14
      • 2022-10-23
      • 2023-03-05
      相关资源
      最近更新 更多