代码之家  ›  专栏  ›  技术社区  ›  Xavin

查找脚本:什么将按钮设置为焦点

  •  0
  • Xavin  · 技术社区  · 8 年前

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

    我试图找到发生这种情况的地方,但不幸的是,我无法找到脚本。我正在使用Chrome并试图设置断点,但没有成功。此外,我还试图用分析器定位发生这种情况的行。到目前为止也没有运气。有人知道如何正确调试吗?非常感谢任何帮助。谢谢

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

    1 回复  |  直到 8 年前
        1
  •  1
  •   Dominique Fortin    8 年前

    您要做的是右键单击您认为将触发事件的元素,然后在上下文菜单上单击inspect。chrome开发者栏将打开,您将看到您单击的元素的html标记。在该栏上有两个部分:一个是html标记,另一个是名为Style、Computed、Event Listeners、DOM断点和属性的选项卡。

    您需要的是事件监听器,因此单击该选项卡。现在我们可以看到该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网站上不起作用。