【发布时间】:2019-05-12 21:55:28
【问题描述】:
我想访问/调试绑定到特定事件的函数。例如,我可以这样做
$> getEventListeners(window)
查看所有绑定到window对象的事件,然后
$> debug(getEventListeners(window).focus[0].listener)
开始调试。
但是,就我而言,我有一个 iframe
<body>
...
<iframe id="test" name="test" src="./inner.html"></iframe>
...
</body>
现在假设inner.html 包含以下内容:
<body>
<div class="abc">Click me</div>
<script>
window.addEventListener('keydown', e => console.log('keydown', e));
document.querySelector('.abc').addEventListener('click', e => console.log('clicked', e));
</script>
</body>
我想调试这两个侦听器,如上所述,结果getEventListeners 不再起作用(或者我做错了什么!)
iframe = document.querySelector('iframe#game');
doc = iframe.contentDocument || iframe.contentWindow.document;
win = iframe.contentWindow;
getEventListeners(win); // -> {}
getEventListeners(doc.querySelector('.abc')); // -> {}
我收到了{},没有找到事件监听器。
所以问题是,如何访问 iframe 中的事件侦听器?
注意:因为这仅用于本地测试/调试,如果需要,我可以切换任何 chrome 设置以使其正常工作!有什么建议吗?
【问题讨论】:
-
将调试窗口的上下文更改为 iframe?
-
听起来很简单 :) 你有没有给我的链接,因为我不知道该怎么做
-
非常感谢,我完全错过了那个下拉菜单:)
标签: javascript debugging google-chrome-devtools dom-events