在Drupal页面上,在完全加载页面之前,按钮元素会被聚焦。
我正试图找到发生这种情况的地方,但不幸的是我无法追踪脚本。我正在使用Chrome并尝试设置一个断点,但没有运气。此外,我试图找到探测器发生这种情况的线。到目前为止也没有运气。有谁知道如何正确调试这个?任何帮助深表感谢。感谢。
当我用div替换时,问题就消失了,所以它与button元素本身有关(没有类或元素id)
答案 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网站。