查找脚本在焦点上设置按钮的内容

时间:2017-01-24 18:33:16

标签: javascript google-chrome debugging drupal

在Drupal页面上,在完全加载页面之前,按钮元素会被聚焦。

我正试图找到发生这种情况的地方,但不幸的是我无法追踪脚本。我正在使用Chrome并尝试设置一个断点,但没有运气。此外,我试图找到探测器发生这种情况的线。到目前为止也没有运气。有谁知道如何正确调试这个?任何帮助深表感谢。感谢。

当我用div替换时,问题就消失了,所以它与button元素本身有关(没有类或元素id)

1 个答案:

答案 0 :(得分:1)

您要做的是右键单击您认为将触发事件的元素,然后在上下文菜单中单击“检查”。 Chrome开发人员栏将打开,您应该看到您单击该元素的html标记。在这个栏上有两个部分:一个带有html标签,另一个带有名为Style,Computed,Event Listeners,DOM Breakpoints和Properties的标签。

您想要的是事件监听器,因此请单击该选项卡。现在我们看到该html元素分组事件类型的所有监听器。打开组时,您应该看到左侧元素列表,其中包含指向事件处理程序的特定代码行的链接。如果单击该链接,您将切换到代码所在的文件。

现在困难的部分。正如您将在一些网页中看到的那样,有很多处理程序。此外,像JQuery这样的库的使用使得更难找到真正做某事的代码片段,并且代码可能会缩小。

因此,假设您找到了要调试的代码。通常它的格式类似于

var namespace = {
    ...
  handler: function(event) {
    /* Event handler code here */
  },
    ...

在这种情况下,这可能有效

(function () {
  var old_handler = namespace.handler;
  namespace.handler = function () {
    debugger; // this make a breakpoint here and stops
    old_handler.apply(this, arguments);
  }
})();

如果全部失败,请制作包含代码的文件的本地副本并设置Apache服务器,以便代理网站,除了您将在本地引用的文件。然后你可以随意修改它。这不适用于https网站。