如何查找网页按钮绑定的触发函数并在Chrome控制台调用
需求可行性结论
可以实现,只要站点的删除逻辑没有做特殊的强上下文校验,你可以通过Chrome开发者工具定位到对应函数后直接在控制台调用完成删除操作。
操作步骤
- 打开Chrome开发者工具:按F12或
Ctrl+Shift+I(Mac设备按Cmd+Opt+I),切换到「元素(Elements)」面板,点击左上角的元素选择箭头,点选页面上的「删除最近一次记录」按钮,即可定位到该按钮对应的DOM节点。 - 查看绑定的点击事件:右键点击定位到的DOM节点,选择「事件监听器(Event Listeners)」选项,展开
click事件分类,就能看到该按钮绑定的所有点击处理函数,点击函数对应的代码路径可以直接跳转到「源(Sources)」面板查看具体逻辑。
你也可以直接在控制台输入getEventListeners($0).click快速获取绑定的事件列表,其中$0是开发者工具自动绑定的变量,代表你当前在Elements面板选中的DOM节点。 - 调用删除函数:
- 如果处理函数是直接挂载在
window全局对象上的公开函数,你可以直接在控制台输入函数名加括号调用,例如deleteLatestRecord()即可完成删除操作。 - 如果函数是闭包内的私有函数未暴露到全局,你可以在Sources面板给点击事件的处理代码打个断点,手动点击一次删除按钮触发断点,此时断点所在作用域内的所有函数都可以在控制台直接调用;如果需要多次调用,你可以在断点触发时在控制台输入
window.delLatest = 对应处理函数名,将函数挂载到全局,后续随时调用delLatest()即可。
- 如果处理函数是直接挂载在
注意事项
如果删除逻辑依赖点击事件的event对象参数,调用时可以传入一个模拟的极简event对象即可,例如deleteLatestRecord({preventDefault: () => {}, stopPropagation: () => {}}),大部分场景下不需要额外传参。
内容的提问来源于stack exchange,提问作者Vqid
相关产品推荐
相关产品推荐

