- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将选择 Chrome 作为示例,但我愿意接受任何浏览器的解决方案。
用例:我的网站上有一个更新按钮,用于更新购物车中的商品数量。我想允许用户输入 0 并单击更新以删除该项目。问题是,某些 js 函数中有一些监听器拒绝输入 0 并单击更新的能力(单击更新后,旧数量仍然保留)。
我的问题是,我可以使用什么开发工具来查找该事件期间正在运行哪个 js 函数?我不认为 Chrome 的检查器会这样做,而且我对 Firebug 不是很熟悉,但我也找不到那里的功能。
我觉得我应该能够像检查 css 样式一样检查 js 触发情况。有人知道我可以使用的工具吗?
最佳答案
我在工作中不得不调试一些特别令人讨厌的、看不见的 Javascript 问题。了解 Chrome 等开发工具的全部深度绝对有帮助。无可否认,找到可能导致问题的地方需要一些创造力,但有一些提示:
在 Chrome 的元素 View 下,尝试检查元素(右键单击,检查);然后,在开发人员 View 的右侧,向下滚动到“事件监听器”。在这里您可以查看哪些代码文件已连接事件。通常,这只会将您从您正在寻找的真正不正当的代码中引向中间框架,但有时它会为您指出正确的方向。
我看到的许多不需要的效果都是由于更改了我不想要的页面上的某些值或属性而造成的。每当发生这种情况时,您都可以右键单击该元素(在“元素” View 下)并说出“中断...”以及您要查找的特定场景。当 Chrome 遇到断点时,您可以在堆栈跟踪中向下查找,直到找到不应调用的可识别内容。
达到十票后编辑!
如果您感兴趣的更改是代码内部的,而不是 UI 中的,那么事情会变得更加棘手。这种情况的意思是,您知道代码中的某个地方正在发生如下令人难以置信的烦人的事情。
company.data.myObject.parameter = undefined;
在这种情况下,您知道 myObject
仍然是同一个对象,但它正在被修改,也许是无意的。为此,我经常插入以下代码,有时只是在所述修改发生之前的某个时刻通过开发人员控制台插入。
Object.defineProperty(company.data.myObject, 'parameter', {
set: (val) => {
debugger;
}
});
这包括一个箭头功能 - 您仅使用它进行调试,并且 Chrome 支持它,因此不妨节省击键次数。这样做的作用是,一旦某行代码尝试修改 myObject
的“parameter
”属性,就会卡住调试器。如果您可以从先前的断点运行这行代码(该断点将在局部变量中包含给定对象),则不一定需要对该变量进行全局引用。
否则,如果我一开始只是 HTML 代码,并且我想将其与 Javascript 代码联系起来,那么我通常只会查找“id”元素等标识功能,并搜索我的文件中的所有 JS 文件。它的开发目录。通常情况下,我可以很快到达。
关于javascript - 如何找到某些事件上正在运行的 Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18087209/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!