Javascript 您如何找到“的来源?”;onevent“;HTML中的处理程序,不带事件侦听器面板?

Javascript 您如何找到“的来源?”;onevent“;HTML中的处理程序,不带事件侦听器面板?,javascript,google-chrome-devtools,Javascript,Google Chrome Devtools,我正在研究一个元素,它以老式的方式添加了几个事件处理程序-- 当我检查检查器中的事件侦听器面板时,它是完全空的 除了手动按住ctrl+f键输入函数名外,还有没有其他方法可以在页面源代码中找到这些函数的代码?您可以在控制台中使用toString方法: doSomething.toString() 或者您可以通过调试器找到它: function findMyCode(element){ debugger element.onblur.call(element); } findM

我正在研究一个元素,它以老式的方式添加了几个事件处理程序--


当我检查检查器中的事件侦听器面板时,它是完全空的


除了手动按住ctrl+f键输入函数名外,还有没有其他方法可以在页面源代码中找到这些函数的代码?

您可以在控制台中使用toString方法:

doSomething.toString()
或者您可以通过调试器找到它:

function findMyCode(element){
    debugger
    element.onblur.call(element);
}
findMyCode(document.getElementById('idOfYourInput'));

然后进入函数调用。

这在Chrome 70中是固定的。下面是Chrome开发工具的屏幕截图,显示了所选输入元素的已注册事件处理程序

要找到这些函数的源代码,只需在控制台中复制粘贴函数名,然后按enter键-您将获得这些函数的源代码

或者,您可以按Ctrl+Shift+F进行快速搜索,这将打开搜索面板。现在,选中正则表达式框并键入“function\s*doSomething\s*\”()并按Enter键。这将直接进入函数定义


这是当前版本的Chrome在v60中修复的一个bug。你可以单独安装Chrome canary,也可以使用一种解决方法:单击一个节点,在控制台中运行
getEventListeners($0)
。是否有机会在函数名内进行基于文本的搜索?该死,我一直在等待的答案在最后一秒突然出现。
function findMyCode(element){
    debugger
    element.onblur.call(element);
}
findMyCode(document.getElementById('idOfYourInput'));