Chrome扩展程序:检测哪个脚本创建了iframe

时间:2016-08-12 00:22:41

标签: javascript iframe google-chrome-extension google-chrome-devtools

我正在尝试使用chrome.debugger构建一个扩展,以将页面请求显示为树。 我希望能够指定动态iframe的父级,即创建它的脚本,而不是它所在的框架。 为此,我想我需要使用Chrome调试协议的DOMDebugger域插入DOM断点,但我找不到任何关于如何使用setEventListenerBreakpoint方法的示例。

使用以下代码:

chrome.debugger.sendCommand(
{tabId:currentTabId},'DOMDebugger.setEventListenerBreakpoint',{eventName:'subtree-modified'},function(a){
                console.dir(arguments);
            });

回调只调用一次,空对象作为参数。

我应该如何使用setEventListenerBreakpoint?

1 个答案:

答案 0 :(得分:1)

最后,我使用一组不同的工具间接完成了它:   - 获取每个页面请求(事件" Network.requestWillBeSent")   - 在页面中获取每个脚本(事件" Debugger.scriptParsed")

如果页面请求有一个启动器,并且有可用的堆栈帧,我可以获得它导致该请求的脚本。 如果请求和脚本属于不同的frameId,则表示脚本正在修改(生成请求),位于不同的帧中。 所以我假设整个iframe是由该脚本创建的(其他条件是必需的,如iframe url ==" about:blank"等) 我猜有些情况下这个假设是假的,但是我认为我能越接近。